获取 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 = 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
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
}
}
您好,我想获取 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 = 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
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
}
}