通过OAuth2授权适用于Android的YouTube数据API

时间:2016-01-19 17:56:09

标签: android youtube-data-api

我正在尝试使用OAuth2授权使用YouTube数据API。我想为Android编写一个简单的客户端,例如,获取用户订阅列表,播放列表等。 问题是我尝试的每种方法(例如,https://www.googleapis.com/youtube/v3/subscriptions或YouTube库com.google.apis:google-api-services-youtube:v3-rev120-1.19.0等HTTP请求),我都会遇到同样的错误:

  

401凭据无效

我执行以下步骤:

  1. 在Google控制台中注册应用。启用YouTube Data API。使用我的应用包名称和密钥库创建OAuth凭据。
  2. 创建Android API密钥。
  3. 在这里,我有很多问题。

    1. 为了有可能获得用户订阅等,我是否必须使用OAuth2凭证和(?)注册API密钥注册应用程序?
    2. 如何使用client_id和client_secrets.json中的其他数据?我怎么能使用这个client_secrets.json呢?我需要下载它,以及如何使用它?
    3. 因为当我看到示例代码时,例如:

      GoogleAccountCredential credential = GoogleAccountCredential.usingOAuth2(context.getApplicationContext(), Arrays.asList(SCOPES));
                  credential.setSelectedAccountName(accountName);
      
                  YouTube youtube = new YouTube.Builder(new NetHttpTransport(),
                          new JacksonFactory(), credential).setApplicationName(context.getString(R.string.app_name)).build();
      

      或使用AccountManager并获取令牌

       accountManager.getAuthToken(userAccount, "oauth2:" + mScope, null, (Activity) mContext,
                  new OnTokenAcquired(), null);
      where mScope="https://gdata.youtube.com"
      

      然后以这种方式使用

      https://www.googleapis.com/youtube/v3/subscriptions?part=snippet&maxResults=10&mine=true&key={here is my key}&access_token= ya29.bgJa5J8LHHu0Mu3P87mbPY9gfhSFzWUHh8gCw022FC6yfMO6GfVHveYr_BG1-HnWF-jpd-IDcGGVrF3gEf4UhSHPSrV76RAwqd4V17ixn72s1Xl6a0wQ4FVDz3cEZjUEN80o
      

      每次都会得到相同的authError错误(简而言之):

        

      “code”:401,
           “message”:“凭证无效”

      我做错了什么?如何在变体1和2中使用client_id。是否有必要?因为我认为这就是为什么它不起作用的原因。

0 个答案:

没有答案