获取 android 当前用户订阅的 Youtube 频道列表?

Get List of Youtube channels subscribe by current user in android?

您好,我想获取 android 中当前用户订阅的频道列表。

我遵循的步骤:

1) https://developers.google.com/youtube/v3/docs/subscriptions/list

通过阅读描述,我为 android 创建了 API key 并在 [=] 中创建了 oauth key 64=] 开发人员控制台,厌倦了执行以下请求

GET https://www.googleapis.com/youtube/v3/subscriptions?part=snippet&mine=true&key={YOUR_API_KEY}。你可以看到我只设置了 part = snippetmine = true

为了验证我遵循了https://developer.android.com/training/id-auth/authenticate.html

这是我的代码

AccountManager am = AccountManager.get(this);
Bundle options = new Bundle();

am.getAuthToken(
    myAccount_,                     // Account retrieved using getAccountsByType()
    "Manage your tasks",            // Auth scope
    options,                        // Authenticator-specific options
    this,                           // Your activity
    new OnTokenAcquired(),          // Callback called when a token is successfully acquired
    new Handler(new OnError()));    // Callback called if an error occurs

添加适当的权限后,我可以在 myAccount_ 中获取我的帐户

正在调用 TokenAcquire

private class OnTokenAcquired implements AccountManagerCallback<Bundle> {
    @Override
    public void run(AccountManagerFuture<Bundle> result) {
        // Get the result of the operation from the AccountManagerFuture.
        Bundle bundle = result.getResult();

        // The token is a named value in the bundle. The name of the value
        // is stored in the constant AccountManager.KEY_AUTHTOKEN.
        token = bundle.getString(AccountManager.KEY_AUTHTOKEN);
        ...
    }
}

我没有得到令牌值

请指导我。 是否有一些替代方法 或者如果必须 update/modify 什么?

我在 xml 中的许可是

<uses-permission android:name="android.permission.ACCOUNT_MANAGER" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.USE_CREDENTIALS" />

我在捕获异常处理时在这一行 token = bundle.getString(AccountManager.KEY_AUTHTOKEN); 遇到错误。

android.accounts.AuthenticatorException. Attempt to invoke virtual method 'java.lang.String android.os.Bundle.getString(java.lang.String)' on a null object reference

我正在使用 android 6.0,它需要 运行 时间许可。

要根据 Obtain an access token 成功获取访问令牌,我认为您需要为 Youtube API 使用有效范围 'https://gdata.youtube.com'。但是,查看您的代码,您似乎将 "Manage your tasks" 作为 Auth 范围传递。尝试将其设置为 'https://gdata.youtube.com'

关于获取订阅者数量,请尝试使用以下 URI GET 请求进行 REST call in Android

GET https://www.googleapis.com/youtube/v3/subscriptions?part=snippet&mySubscribers=true&fields=pageInfo&key={SERVER_API_KEY}

它 returns 一个 JSON 响应,其中 totalResults 表示订阅者数量:

{
   "pageInfo": {
   "totalResults": 2,
   "resultsPerPage": 5
  }
}