0

현재 Google 캘린더에서 내 캘린더에 안드로이드 앱을 연결하려고합니다.Android를 사용하여 GoogleCalendar에 연결하기

하지만 전화를 인증하는 방법에 대해 완전히 혼란 스럽습니다. 나는 이것을 OAuth2.0과 함께해야만한다는 것을 이해한다.

그러나 내가 잘 이해할 수있는 명확한 예제 나 튜토리얼은 없다. 나는 다음과 같은 단계에 따라 시도 는 여기에 설명 :

https://developers.google.com/google-apps/calendar/auth

하지만 아마 아주 기본에 혼란스러워지고 계속.

내 질문은 여기 있습니다. 누구나 다음 단계를 이해하고 일부 예제 코드를 제공 할 수 있습니까?

1 단계 : OAuth2.0 토큰을 요청하십시오.

2 단계 : 토큰 OAuth2.0에 유효성을 검사하고 accessToken

3 단계 검색 다음 accessToken을 사용하여 실제로 나에게 JSON 내가 그렇게 욕망을주는의 HTTPRequest 호출을한다.

답변

0

질문이 최신 상태입니까? 아니면 이미 문제가 해결 되었습니까?

편집 :

여기

방법 GoogleCalendar 구현하는 약간 기본 정보 : (

public class MyCalendar 
{ 
    private static final String AUTH_TOKEN_TYPE = "cl"; 
    public static final String KEY = "YOUR_API_KEY"; //You can find below Simple API Access at GoogleApiConsole 
    final HttpTransport transport = AndroidHttp.newCompatibleTransport(); 
    final JsonFactory factory = new GsonFactory(); 
    GoogleAccountManager accountManager; 
    String name; 
    String token; 
    public com.google.api.services.calendar.Calendar mycalendar; 

    private HttpRequestInitializer initializer = new HttpRequestInitializer() 
    { 
    public void initialize(HttpRequest request) throws IOException 
    {   
     request.getHeaders().setAuthorization(GoogleHeaders.getGoogleLoginValue(authToken)); 
    } 
    }; 

    public MyCalendar() 
    { 
    } 
} 
  1. 는 Calendar 객체를 만듭니다 달력을 처리하는 클래스

    1.Create을 나는 이것을 MyCalendar의 생성자에 넣습니다.

    mycalendar = com.google.api.services.calendar.Calendar.builder(transport,jsonFactory) 
           .setApplicationName("CHOOSE_A_APPNAME")      
           .setHttpRequestInitializer(initializer) 
           .setJsonHttpRequestInitializer(new GoogleKeyInitializer(KEY)) 
           .build(); 
    accountManager = new GoogleAccountManager(TimetableApplication.getInstance().getActivity()); 
    findGoogleAcc(); 
    

귀하의 캘린더에 액세스하려면 이니셜 라이저의 초기화 메소드 [;-)]가 나중에 호출됩니다. GoogleAccount에 대한

2.Search는 방법에 일정 3.Use 사용자의 전화

void findGoogleAcc() 
{ 
    Account account = accountManager.getAccountByName(name); 
    if(account == null) 
    { 
     //Handle wrong name, or if user connect more than one accounts to phone 
    } 
    if(token != null) 
    { 
     //you already got your token for user's account and these method is not necessary 
    } 
    accountManager.getAccountManager().getAuthToken(account, AUTH_TOKEN_TYPE, true, new AccountManagerCallback<Bundle>() { 

     public void run(AccountManagerFuture<Bundle> future) 
     { 
      try 
      { 
       Bundle bundle = future.getResult(); 
       if(bundle.containsKey(AccountManager.KEY_INTENT)) 
       { 
        // Allow app to connect to googleaccount 
        Intent intent = bundle.getParcelable(AccountManager.KEY_INTENT); 
        intent.setFlags(intent.getFlags() & ~ Intent.FLAG_ACTIVITY_NEW_TASK); 
        activity.startActivityForResult(intent, 0); 
       } 
       else 
        if(bundle.containsKey(AccountManager.KEY_AUTHTOKEN)) 
        { 
         this.authToken = authToken; 
         gotSmthFromCalendar(); 
        } 
      } 
      catch(Exception e) 
      { 
      } 
     } 
    }, null); 
} 

에 대해 참조 :

 void gotSmthFromCalendar() 
    { 
     //Here u can do whatever u want. 
    } 

난 당신이 데이터를 requezst하는 AsyncTask를 사용해야합니다() gotSmthFromCalendar에 생각합니다. 예를 들어 다음과 같이 할 수 있습니다.

List<CalendarListEntry> calendarList = mycalendar.calendarList().list().execute().getItems(); 
    for(CalendarListEntry calendarEntry : calendarList) 
    { 
     String summary = calendarEntry.getSummary(); 
     String id = calendarEntry.getId(); 
     Log.v("Calendar","Found a calendar with summary : " + summary + " an id: " + id); 
    } 

이러한 기본 사항을 사용하면 v3을 사용할 수 있습니다. 추가 도움이 필요하면 매번 저에게 물어보십시오 !!

Kooki

+0

이 구글을 사용하여 대답하지만, 우리의 프로젝트에 고정되어 있지 칼 v1을 대신 V3 –

+0

의 확인 아,하지만 당신은 몇 가지를 당신에게 도움이 조금 bit.Here 수 있습니다 내가 수도 도움이 필요 obsolete.if 그 V1이 기억 기본 사항 : GoogleApi (https://code.google.com/apis/console)를 만들고 그 위에 프로젝트를 만들면됩니다. 필요한 모든 라이브러리를 프로젝트에 추가해야합니다.그 후 정적 빌더를 사용하여 Calendarobject를 간단하게 만들 수 있습니다. 너 이미 이걸 가지고 있니? – Kooki

+0

예. 불행히도 이러한 문제는 여전히 남아 있습니다. oauth2.0 인증에 대한 정확한 단계를 설명하는 예의 바른 튜토리얼이나 예제는 없습니다. 나는 v1이 쓸모 없다는 것을 안다.하지만이 방법으로는 제대로 작동하고 시간을 제대로 잡을 수 없을 것이다. 그러나 다음 사건에 대한 좋은 해결책은 항상 환영합니다. –

관련 문제