【问题标题】:Google Admob API - Java client - com.google.api.client.googleapis.json.GoogleJsonResponseException: 403 ForbiddenGoogle Admob API - Java 客户端 - com.google.api.client.googleapis.json.GoogleJsonResponseException: 403 Forbidden
【发布时间】:2020-02-27 15:46:33
【问题描述】:

我正在尝试使用 Google Admob API Java 客户端,描述为 here,但我收到了以下回复:

{
  "code" : 0,
  "error" : {
    "code" : 403,
    "message" : "Request had insufficient authentication scopes.",
    "errors" : [ {
      "message" : "Insufficient Permission",
      "domain" : "global",
      "reason" : "insufficientPermissions"
    } ],
    "status" : "PERMISSION_DENIED"
  }
}

这就是我获取凭据的方式:

    GoogleClientSecrets clientSecrets = GoogleClientSecrets.load(JSON_FACTORY,
            new InputStreamReader(GoogleConnector.class.getResourceAsStream("/client_secrets_tt.json")));
    // set up authorization code flow
    GoogleAuthorizationCodeFlow flow = new GoogleAuthorizationCodeFlow.Builder(
            httpTransport, JSON_FACTORY, clientSecrets,
            Collections.singleton("https://www.googleapis.com/auth/admob.report")).setDataStoreFactory(
            dataStoreFactory).build();
    // authorize
    return new AuthorizationCodeInstalledApp(flow, new LocalServerReceiver()).authorize(userId);

这是我的 Admob 客户端:

AdMob adMobClient = new AdMob.Builder(
        httpTransport,
        jsonFactory,
        request -> {
            credential.initialize(request);
            request.setParser(new JsonObjectParser(jsonFactory));
        })
        .setRootUrl("https://admob.googleapis.com")
        .setApplicationName(applicationName)
        .build();
return adMobClient;

我还在 OAuth 同意屏幕中手动添加了范围 https://www.googleapis.com/auth/admob.report

有人可以帮助我或建议这可能是什么原因吗?

【问题讨论】:

    标签: java google-api admob


    【解决方案1】:

    尝试删除之前由 DataStore 存储的凭据(即,检查您家中的 ~/.credentials/ 之类的目录)。再次完成整个流程。

    在 OAuth 流程中:

    • 代码生成链接;
      • 以隐身浏览模式打开它;
      • 使用您的 AdMob 帐户登录;
      • 接受辅音屏幕(使用您的 admob 帐户);
    • 接收access_tokenrefresh_token
    • refresh_roken 与数据存储一起存储;
    • 使用 access_token 提出请求;

    大部分步骤将由 GoogleAuthorizationCodeFlow 代码完成。

    另外,您可以查看 github 上的 java 示例:

    【讨论】:

      猜你喜欢
      • 2015-12-05
      • 2021-07-10
      • 2015-04-06
      • 1970-01-01
      • 2016-07-08
      • 1970-01-01
      • 2018-11-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多