YouTube搜索列表上的AuthError执行

时间:2015-07-23 11:58:32

标签: java youtube youtube-api

我正在探索YouTube API并创建一个可以使用授权用户令牌搜索的Java应用程序。我按照以下方式进行授权。

private static Credential authorize(String storeDirectory) throws Exception {
    // load client secrets

    YT.DATA_STORE_DIR = new java.io.File(".",".store/"+storeDirectory);
    YT.dataStoreFactory = new FileDataStoreFactory(YT.DATA_STORE_DIR);

    GoogleClientSecrets clientSecrets = GoogleClientSecrets.load(YT.JSON_FACTORY,
        new InputStreamReader(new ByteArrayInputStream(YT.CLIENT_SECRET_JSON.getBytes(StandardCharsets.UTF_8))));
    if (clientSecrets.getDetails().getClientId().startsWith("Enter")
        || clientSecrets.getDetails().getClientSecret().startsWith("Enter ")) {
      System.out.println(
          "Enter Client ID and Secret from https://code.google.com/apis/console/?api=plus "
          + "into client string.");
      System.exit(1);
    }

    String[] permissoins = { PlusScopes.PLUS_LOGIN, PlusScopes.PLUS_ME, PlusScopes.USERINFO_EMAIL, PlusScopes.USERINFO_PROFILE, "https://www.googleapis.com/auth/youtube" };
    // set up authorization code flow
    GoogleAuthorizationCodeFlow flow = new GoogleAuthorizationCodeFlow.Builder(
        YT.httpTransport, YT.JSON_FACTORY, clientSecrets,
        new ArrayList(Arrays.asList(permissoins))).setDataStoreFactory(
        YT.dataStoreFactory).build();
    // authorize
    return new AuthorizationCodeInstalledApp(flow, new LocalServerReceiver()).authorize("user");
}

我正在尝试搜索单个关键字

Credential credential = authorize("username");
YouTube.Search.List search = youtube.search().list("id,snippet");
// I have set OauthToken here. 
search.setOauthToken(credential.getAccessToken());
search.setMaxResults(50L);
search.setQ("Search keyword");
search.setType("video");
search.setFields("items(id/kind,id/videoId,snippet/title,snippet/thumbnails/default/url)");
// It get exception below line.
SearchListResponse searchResponse = search.execute();
List<SearchResult> searchResultList = searchResponse.getItems();

我收到的例外情况如下。

ex = (com.google.api.client.googleapis.json.GoogleJsonResponseException) com.google.api.client.googleapis.json.GoogleJsonResponseException: 401 Unauthorized
{
  "code" : 401,
  "errors" : [ {
    "domain" : "global",
    "location" : "Authorization",
    "locationType" : "header",
    "message" : "Invalid Credentials",
    "reason" : "authError"
  } ],
  "message" : "Invalid Credentials"
}

我想知道我错过了设置任何api密钥或我做错了什么。

我需要使用

吗?

search.setKey("YOUTUBE_DEVELOPER_KEY");

我也很困惑使用什么作为YOUTUBE_DEVELOPER_KEY

0 个答案:

没有答案