2017-06-11 12 views
0

私はthis articleに従っており、AndroidアプリにGoogle Sign-Inを実装しています。このコードの最後のビットは、私たちにサインインしたユーザに関する情報が含まれていGoogleSignInAccountオブジェクト与えGoogleのログインを使用してYouTubeデータAPIを承認する

:YouTubeのデータAPIについてcode samples providedのすべてにおいて

private void handleSignInResult(GoogleSignInResult result) { 
    Log.d(TAG, "handleSignInResult:" + result.isSuccess()); 
    if (result.isSuccess()) { 
     // Signed in successfully, show authenticated UI. 
     GoogleSignInAccount acct = result.getSignInAccount(); 
     mStatusTextView.setText(getString(R.string.signed_in_fmt, acct.getDisplayName())); 
     updateUI(true); 
    } else { 
     // Signed out, show unauthenticated UI. 
     updateUI(false); 
    } 
} 

は、次の認証コードが使用されます。

私は既にGoogleログインを使用して認証されたので
public static Credential authorize() throws IOException { 
    // Load client secrets. 
    InputStream in = ApiExample.class.getResourceAsStream("/client_secret.json"); 
    GoogleClientSecrets clientSecrets = GoogleClientSecrets.load(JSON_FACTORY, new InputStreamReader(in)); 

    // Build flow and trigger user authorization request. 
    GoogleAuthorizationCodeFlow flow = new GoogleAuthorizationCodeFlow.Builder(
    HTTP_TRANSPORT, JSON_FACTORY, clientSecrets, SCOPES) 
     .setDataStoreFactory(DATA_STORE_FACTORY) 
     .setAccessType("offline") 
     .build(); 
    Credential credential = new AuthorizationCodeInstalledApp(
    flow, new LocalServerReceiver()).authorize("user"); 
    System.out.println(
     "Credentials saved to " + DATA_STORE_DIR.getAbsolutePath()); 
    return credential; 
} 

は今、どのように私はYouTube.Builderに渡すGoogleSignInAccountオブジェクトを使用してCredentialオブジェクトを作成することができますか?

+0

私は後でこの質問のための答えを書きますが、その間に、[この](https://gist.github.com/bertrandmartel/7d323b09af889f5c03b862612c796046は)解決するために私を助けました私の問題。 – sudoman

答えて

0
public static final Collection<String> YOUTUBE_SCOPE = Arrays.asList("https://www.googleapis.com/auth/youtube.force-ssl https://www.googleapis.com/auth/youtubepartner"); 

... 

private void handleSignInResult(GoogleSignInResult result) { 

    ... 

    GoogleAccountCredential credential = GoogleAccountCredential.usingOAuth2(context, YOUTUBE_SCOPE); 
    credential.setSelectedAccount(acct.getAccount()); 

    ... 

} 

Source

関連する問題