1

无论如何尝试都无法访问 AdSense API。我已经尝试过服务帐户OAuth身份验证。

我要完成的工作:

创建一个机器人来获取 Adsense 获得的收入并将其存储在内部数据库中,以便随着时间的推移跟踪收入。我不想有身份验证问题,我想要一个服务器到服务器的配置。

我所知道的是您可以在 OAuth 下拥有访问令牌和刷新令牌。我还不能让它们在任何可用的 Adsense API 下工作。注意:我已经构建了一个 API 来使用 AdWords 没有问题。

错误:(在认证类型之间,我无法通过这些)

  • “找不到帐户”

  • “客户端未经授权无法使用此方法检索访问令牌。”

到目前为止我做了什么:

  • Adsense 管理 API 已启用。

  • 创建的凭据:服务帐户

  • 创建的凭据:oAuth 2.0 客户端 ID

  • GSuite 帐号可以访问 API(包括“启用的 API 访问”和“托管的 API 客户端访问”)

图书馆(尝试)使用:

https://developers.google.com/api-client-library/php/

https://github.com/google/google-api-php-client

https://github.com/google/google-api-php-client-services

(过时的)https://github.com/googleads/googleads-adsense-examples

示例代码:(使用服务帐户)

$client = new \Google_Client();
$client->setAuthConfig(WRITEPATH . 'auth/adsense-client.json');
$client->setIncludeGrantedScopes(true);
$client->addScope('https://www.googleapis.com/auth/adsense');
$client->setSubject('email@example.com');

// trying to fire the services
$service = new \Google_Service_AdSense($client);
$report  = $service->accounts_reports->generate('clientId', $startDate, $endDate, $optParams);

此脚本触发“客户端未经授权无法使用此方法检索访问令牌”。错误信息。但是,正在使用的电子邮件地址能够访问 adsense 帐户,API 已在管理域级别启用和配置。

有没有更简单的方法?有没有人可以带领我走向正确的方向?

4

1 回答 1

2

服务帐号

我不太确定服务帐户可以与广告一起使用。您可以通过访问 adsence 网站并在 manageUsers 下添加服务帐户电子邮件地址来尝试。我认为这里的问题是它会挂在那里,因为服务帐户需要确认它已被添加。没有办法做到这一点。

管理域级别

如果您尝试为此添加域范围的委派,我也不会为此烦恼,因为我认为它也不支持。

客户端未经授权无法使用此方法检索访问令牌。

至于那个错误,我也许可以提供帮助。这意味着您已获取为服务帐户下载的凭据文件,并尝试将其与 Oauth2 的代码一起使用。反之亦然。再次下载凭据文件并重试。

我有一些示例代码可能对这里有所帮助

于 2018-02-22T12:50:39.530 回答