您好我想获取当前用户在android中订阅的频道列表。
我遵循的步骤:
1)https://developers.google.com/youtube/v3/docs/subscriptions/list
通过阅读说明,我在Android开发者控制台中为Android和 oauth 键创建了 API密钥,并且厌倦了实施以下请求
GET https://www.googleapis.com/youtube/v3/subscriptions?part=snippet&mine=true&key={YOUR_API_KEY}。你可以看到我只设置了part = snippet
和mine = 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
的backbaackprivate 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);
...
}
}
我没有获得令牌值。
请指导我。 是否有其他替代方法或者是否必须更新/修改某些内容?
我在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。 尝试在空对象引用上调用虚方法'java.lang.String android.os.Bundle.getString(java.lang.String)'
我使用的是Android 6.0,它需要运行时权限。
答案 0 :(得分:1)
要根据Obtain an access token成功获取访问令牌,我认为您需要为Youtube API使用'https://gdata.youtube.com'
的有效范围。但是,看看你的代码,似乎你通过了#34;管理你的任务&#34;作为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}
它返回一个JSON响应,其中totalResults表示订阅者数量:
{
"pageInfo": {
"totalResults": 2,
"resultsPerPage": 5
}
}