Google_Auth_Exception获取OAuth 2.0服务帐户认证


Google_Auth_Exception When trying to get OAuth 2.0 Service Account Authentication

这是我的代码:

<>之前session_start ();error_reporting (E_ALL);报错(' display_errors ', 1);require_once‘谷歌/Client.php’;require_once‘谷歌/服务/AdExchangeSeller.php’;$scriptUri = "http://example.com/some_seller_api.php";$client_id = 'XXXXXX.apps.googleusercontent.com';$service_account_name = 'XXXXXXXXX@developer.gserviceaccount.com';$key_file_location = '/XXXXX/privatekey.p12';$client = new Google_Client();客户端-> setApplicationName("Example_app");if (isset($_SESSION['service_token'])) {客户端-> setAccessToken ($ _SESSION [' service_token ']);}$key = file_get_contents($key_file_location);$cred = new Google_Auth_AssertionCredentials()service_account_name美元,数组("https://www.googleapis.com/auth/adexchange.seller.readonly"),美元的关键);客户端-> setAssertionCredentials(美元信誉);如果客户端-> getAuth()——> isAccessTokenExpired ()) {客户端-> getAuth()——> refreshTokenWithAssertion(美元信誉);}$_SESSION['service_token'] = $client->getAccessToken();$service = new Google_Service_AdExchangeSeller($client);$acc = $service->adclients->listAdclients();之前

我做的一切都像官方手册和示例https://github.com/google/google-api-php-client/blob/master/examples/service-account.php

和我有一个错误:

<>之前致命错误:未捕获的异常'Google_Auth_Exception'伴有消息'刷新OAuth2令牌错误,消息:'{"error": "access_denied", "error_description": "请求的客户端未被授权。"}"之前

我做错了什么?

看来您还没有授权您的应用程序使用目标服务。OAuth2步骤之一是您的应用程序(将要访问服务的应用程序)需要向目标服务"注册"(或授权)。这是你注册回调URL的方式,等等。

根据你的代码,你正在访问广告交换卖家REST API。打开下面的链接并按照一步一步的指南来解决您遇到的问题:

https://developers.google.com/ad-exchange/seller-rest/getting_started auth