需要登录php 401中的Google API OAuth
我正在尝试使用谷歌api购物(商家),我被这个问题困住了 我对php不是很熟悉,但对我来说,代码似乎很好,我想做的就是尝试从我的商店取货。我已经按照google建议的步骤在开发者控制台中设置了客户端id和客户端机密,但是在登录之后我仍然得到了错误 下面是我使用的代码:需要登录php 401中的Google API OAuth,php,google-oauth,google-api-php-client,Php,Google Oauth,Google Api Php Client,我正在尝试使用谷歌api购物(商家),我被这个问题困住了 我对php不是很熟悉,但对我来说,代码似乎很好,我想做的就是尝试从我的商店取货。我已经按照google建议的步骤在开发者控制台中设置了客户端id和客户端机密,但是在登录之后我仍然得到了错误 下面是我使用的代码: <?php /* * Uses google API to make an authorized request trough a google dev console project. */ require_onc
<?php
/*
* Uses google API to make an authorized request trough a google dev console project.
*/
require_once __DIR__ . '/../../google-api-php-client-master/vendor/autoload.php';
//require_once 'Google/Client.php';
//require_once 'Google/Service/ShoppingContent.php';
require_once '../Config.php';
$redirect_uri = $actual_link = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]"; //this is used during the auth process
//$merchantId = $_POST['merchantId'];
$merchantId = Config::MERCHANT_ID;
$service;
$client = Config::getGoogleClient();
$client->setRedirectUri($redirect_uri);
doOAuth($client);
echo "TOKEN : " + $client->getAccessToken() . " " . $_SESSION['oauth_access_token'];
//after authentication we can create a service object
$service = new Google_Service_ShoppingContent($client);
$products = $service->products->listProducts($merchantId);
$parameters = array();
while (!empty($products->getResources())) {
foreach ($products->getResources() as $product) {
printProduct($product);
}
if (!empty($products->getNextPageToken())) {
break;
}
$parameters['pageToken'] = $products->nextPageToken;
$products = $service->products->listProducts($merchantId, $parameters);
}
printf("\nEnd");
////////////////////////
//$_SESSION['oauth_access_token'] = null;
function doOAuth(&$client) {
if (isset($_SESSION['oauth_access_token'])) {
$client->setAccessToken($_SESSION['oauth_access_token']);
} elseif (isset($_GET['code'])) {
// $client->setAccessType("offline"); //IMPORTANT
$token = $client->authenticate($_GET['code']);
$_SESSION['oauth_access_token'] = $token;
} else {
header('Location: ' . $client->createAuthUrl());
exit;
}
}
function printProduct($product) {
printf("%s %s\n", $product->getId(), $product->getTitle());
}
旧uri是动态的,使用代码参数,您必须在Google API控制台中设置重定向uri。它应该与您尝试接收令牌的位置相同。
/**
* IMPORTANT: this url is used during both two phases of OAuth.
* If a mistmatch of the redirect uri occours during the two phases, the login
* fails. Must ignore the code (get) parameter in the second phase.
**/
$redirect_uri = "http://localhost/gshop/action/list.php";