当前位置: 首页 > 知识库问答 >
问题:

Google API curl在php中获取刷新令牌

宗政坚白
2023-03-14

我正在使用php和curl来检索审查数据,并希望使用刷新令牌来自动化获取访问令牌的过程。我了解如何使用HTTP/REST来实现这一点,如下所述:

我正在尝试“刷新访问令牌(脱机访问)”一节,我知道我需要执行POST请求,但不确定如何在PHP中使用curl来执行此操作。

以下是我现在拥有的:

function getToken($token_url){
    
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $token_url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_POST, 1);

    $result = curl_exec($ch);
}

$token_url = "https://oauth2.googleapis.com/token" . "&client_id=" . $client_id . "&client_secret=" . $client_secret . "&refresh_token=" . $refresh_token . "&grant_type=" . $grant_type;
getToken($token_url);

共有1个答案

姜德泽
2023-03-14

因此,查看提供的文档,要使用CURL模块在PHP中执行HTTP/REST请求,代码如下所示:

function getToken($token_url, $request_data) {

    $ch = curl_init($token_url);

    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($request_data));
    curl_setopt($ch, CURLOPT_HTTPHEADER, array(
        "Content-Type: application/x-www-form-urlencoded"
    )); 

    $result = curl_exec($ch);
}

$token_url = "https://oauth2.googleapis.com/token";

$request_data = array(
    "client_id" => $client_id,
    "client_secret" => $client_secret,
    "refresh_token" => $refresh_token,
    "grant_type" => "refresh_token" // Constant for this request
);
getToken($token_url, $request_data);
 类似资料:
  • 我编写了一个控制台ASP.NET应用程序来获取AccessTokens。我有clientId,我的应用程序的客户端秘密,我做了以下操作: var authContext=新的AuthenticationContext(“https://login.windows.net/common/oauth2/authorize”);var acquireTask=authContext.AcquireTok

  • 调用execute方法时,它会引发以下异常: 谁能指出我哪里做错了?我能够从谷歌oAuth UI获得访问令牌。

  • 目前访问类型处于联机状态。当我需要访问驱动器上的文件/文件夹时,我将浏览器重定向到Google URL并获得访问代码: 一切运转良好!但我只需要第一次重定向。 当我谷歌时,在google Drive API文档中,我发现我可以通过浏览器重定向获得刷新令牌,并将其保存在数据库中。(换句话说,我可以使用脱机访问)。 而且每次当我需要从google drive读取数据时,我使用刷新令牌获得访问令牌,而无

  • 我有一个使用express api的react应用程序。我正在尝试在访问令牌过期时刷新令牌。我正在使用axios拦截器来实现这一成就。 它卡在某个地方了。我使用console.log来调试它。从控制台; 发布http://localhost:5000/api/auth/token?null 401(未经授权) 之后什么都没发生。我该怎么办?谢谢你的帮助

  • 我使用 Laravel Tymon/JWT-AUTH 进行 JWT 身份验证。但是当我进行身份验证时,只需获取访问令牌,而不是刷新令牌 in package.json 我希望得到一个刷新令牌来刷新令牌到期后,在配置/jwt.php我可以设置访问令牌和刷新令牌的到期时间,但我不能得到它。如何获得刷新令牌?