无论我尝试什么,都无法访问AdSense API。我尝试过服务帐户和OAuth身份验证。
我想要完成的事情:
创建一个机器人,该机器人将获取广告收入,并将其存储在内部数据库中,以便随着时间的推移跟踪收入。我不想有身份验证问题,我想要一个server-to-server配置。
我所知道的是,您可以在OAuth下拥有访问令牌和刷新令牌。我还没有能够让它们在任何可用的API下使用Adsense。注意:我已经构建了一个使用AdWords的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是在管理域级别上启用和配置的。
有更简单的方法吗?有人能把我引向正确的方向吗?
发布于 2018-02-22 12:50:39
服务帐户
我不太确定服务帐户是否有效。您可以尝试通过访问广告网站,并在manageUsers下添加服务帐户电子邮件地址。这里的问题是它将处于待定状态,我认为因为服务帐户需要确认它已经被添加了。没有办法做到这一点。
管理域级
如果您正试图向此添加域范围的委托,我也不会为之烦恼,就我所能看到的它也不支持。
使用此方法检索访问令牌是未经授权的。
至于那个错误,我也许能帮上忙。这意味着您已经获取了服务帐户下载的凭据文件,并试图将其与Oauth2的代码一起使用。或者反之亦然。再次下载凭据文件,然后再试一次。
我有一些可以帮助这里的示例代码
https://stackoverflow.com/questions/48873774
复制相似问题