gpt4 book ai didi

php - 谷歌 API 客户端 :"{ "错误“: "invalid_grant", "error_description": "Incorrect token type."}”

转载 作者:太空狗 更新时间:2023-10-29 15:00:27 27 4
gpt4 key购买 nike

我正在开发一个带有 google plus 登录的 android 应用程序。当用户尝试登录时,我将 token 发送到服务器并使用官方 Official Google APIs Client Library for PHP 通过 google API 对其进行验证。

当我尝试验证访问 token 时发生错误,所以我调试它并记录请求结果的响应:

object(Google_Http_Request)#5 (14) { ["batchHeaders":"Google_Http_Request":private]=> array(3) { ["Content-Type"]=> string(16) "application/http" ["Content-Transfer-Encoding"]=> string(6) "binary" ["MIME-Version"]=> string(3) "1.0" } ["queryParams":protected]=> array(0) { } ["requestMethod":protected]=> string(4) "POST" ["requestHeaders":protected]=> array(2) { ["content-type"]=> string(33) "application/x-www-form-urlencoded" ["content-length"]=> int(254) } ["baseComponent":protected]=> string(27) "https://accounts.google.com" ["path":protected]=> string(15) "/o/oauth2/token" ["postBody":protected]=> string(254) "code=ya29.2QAkG7lKto3jZk-6ASgU0MUw_Wy7MdecJTudTkHC4D_XXXXXXFoDHct7C1g&grant_type=authorization_code&redirect_uri=&client_id=547769313690-XXXX.apps.googleusercontent.com&client_secret=hmOBOZk6EDJo-HVq4AMaIUwY" ["userAgent":protected]=> string(0) "" ["canGzip":protected]=> bool(false) ["responseHttpCode":protected]=> int(400) ["responseHeaders":protected]=> array(11) { ["content-type"]=> string(16) "application/json" ["cache-control"]=> string(46) "no-cache, no-store, max-age=0, must-revalidate" ["pragma"]=> string(8) "no-cache" ["expires"]=> string(29) "Fri, 01 Jan 1990 00:00:00 GMT" ["date"]=> string(29) "Thu, 11 Dec 2014 11:53:39 GMT" ["x-content-type-options"]=> string(7) "nosniff" ["x-frame-options"]=> string(10) "SAMEORIGIN" ["x-xss-protection"]=> string(13) "1; mode=block" ["server"]=> string(3) "GSE" ["alternate-protocol"]=> string(15) "443:quic,p=0.02" ["transfer-encoding"]=> string(7) "chunked" } ["responseBody":protected]=> string(80) "{ "error" : "invalid_grant", "error_description" : "Incorrect token type." }" ["expectedClass":protected]=> NULL ["accessKey"]=> NULL } 

这是我的 PHP 代码:

<?php
$google_client_id = 'XXX.apps.googleusercontent.com';
$google_client_secret = 'XXX-HVq4AMaIUwY';
$google_redirect_url = 'xxx';
$google_developer_key = 'XXXXXXXXX';
$google_application_name = 'XXX Login';
$google_application_scope = 'https://www.googleapis.com/auth/plus.me'; /* I only needed the basic user info */
$google_redirect_uri='';
//include google api files
require_once 'vendor/autoload.php';

$gClient = new Google_Client();
$gClient->setApplicationName($google_application_name);
$gClient->setClientId($google_client_id);
$gClient->setClientSecret($google_client_secret);
//$gClient->setRedirectUri($google_redirect_uri);
$gClient->setScopes($google_application_scope);
// $gClient->setDeveloperKey($google_developer_key);
//$gClient->setAccessType('offline');

$gClient->authenticate("ya29.2QAkG7lKto3jZk-6ASgU0MUw_Wy7MdecJTudTkHC4D_XXXXXX");

$token = json_decode($gClient->getAccessToken());

$google_oauthV2 = new Google_Service_Oauth2($gClient);
$user_info = $google_oauthV2->userinfo->get();
var_dump($user_info);
die();

最佳答案

我最近在 http://www.sanwebe.com/2012/11/login-with-google-api-php 上的教程的帮助下实现了同样的目标

您似乎错过了 OAuth 流程的一部分。身份验证功能需要在登录时接收从 Google 发送的 token 。

输入有效的重定向 URI 也可以避免潜在的问题。

希望对您有所帮助。

关于php - 谷歌 API 客户端 :"{ "错误“: "invalid_grant", "error_description": "Incorrect token type."}”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27422463/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com