1

我正在尝试在 api 中使用 google sing 授权 youtube 数据请求(范围)。Google 登录在我的应用程序中运行良好,我正在登录。如何使用 google 登录 api 的结果向 youtube 数据 api 范围发送请求?

我的登录:

GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
            .requestScopes(new Scope("https://www.googleapis.com/auth/youtube"))
            .build();
    api = new GoogleApiClient.Builder(main.getApplicationContext())
            .addApi(Auth.GOOGLE_SIGN_IN_API, gso)
            .build();

这工作正常。

我从结果中得到一个 GoogleSignInAccount 和一个 GoogleApiClient。如何向 youtube 发送请求,例如添加订阅或获取频道名称/ID?

谢谢

凯巴

4

1 回答 1

3

问谷歌无法处理/回答我的问题,我现在自己做。(有点尴尬的是,像谷歌这样的公司无法帮助正在使用 API 的开发人员。)

但这就是我要工作的:

GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
            .requestScopes(new Scope("https://www.googleapis.com/auth/youtube"))
            .requestIdToken("APIKEY FROM WEBSITE")
            .requestEmail()
            .build();
    api = new GoogleApiClient.Builder(main.getApplicationContext())
            .addApi(Auth.GOOGLE_SIGN_IN_API, gso)
            .build();
    api.connect();

如果您希望 android 显示登录窗口,这将授权用户:

Intent intent = Auth.GoogleSignInApi.getSignInIntent(api);
            main.startActivityForResult(intent, 9001);

结果可以如下使用:

Account account = result.getSignInAccount().getAccount();

该帐户现在可用于订阅 youtube 上的某人。

GoogleAccountCredential credential = GoogleAccountCredential.usingOAuth2(
            Main.main,
            Collections.singleton("https://www.googleapis.com/auth/youtube"));
    credential.setSelectedAccount(google.getAccount());
    youTube = new YouTube.Builder(
            new NetHttpTransport(),
            new JacksonFactory(),
            credential)
            .setApplicationName("APPNAME")
            .build();

youtube 对象现在可以用于您喜欢的任何内容。

感谢这个社区,即使我对谷歌非常失望。

凯巴

于 2017-05-02T13:49:02.040 回答