Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Gmail API:永久令牌访问_Php_Access Token_Gmail Api - Fatal编程技术网

Php Gmail API:永久令牌访问

Php Gmail API:永久令牌访问,php,access-token,gmail-api,Php,Access Token,Gmail Api,经过多次研究,我现在可以用PHP代码检索我的Gmail收件箱了。现在,我想知道是否有可能在不强制使用OAuth登录的情况下获得API的永久令牌访问 我正在制作一个小应用程序,可以检索3个不同的Gmail收件箱,使用我的应用程序的人不会浪费时间将我的Gmail应用程序授权给不同的收件箱 我的意思是,有没有一种方法可以避免每次我试图检索我的Gmail收件箱时进行授权,就像永久性的令牌访问一样,我只会获得一次,然后将其存储到我的数据库中 谢谢您的帮助。没有永久令牌,但有刷新令牌: 将授权代码交换为访

经过多次研究,我现在可以用PHP代码检索我的Gmail收件箱了。现在,我想知道是否有可能在不强制使用OAuth登录的情况下获得API的永久令牌访问

我正在制作一个小应用程序,可以检索3个不同的Gmail收件箱,使用我的应用程序的人不会浪费时间将我的Gmail应用程序授权给不同的收件箱

我的意思是,有没有一种方法可以避免每次我试图检索我的Gmail收件箱时进行授权,就像永久性的令牌访问一样,我只会获得一次,然后将其存储到我的数据库中


谢谢您的帮助。

没有永久令牌,但有刷新令牌:

将授权代码交换为访问令牌

授权代码是服务器可以使用的一次性代码 交换访问令牌。这个访问令牌被传递给Gmail API授予应用程序在有限时间内访问用户数据的权限

如果您的应用程序需要脱机访问,请在首次访问应用程序时 交换授权码,它还接收刷新令牌 它用来在前一个令牌被删除后接收新的访问令牌 期满。应用程序存储此刷新令牌(通常在 数据库)以供以后使用

重要提示:始终存储用户刷新令牌。如果您的应用程序需要 一个新的刷新令牌,它必须发送一个带有批准提示的请求 查询参数设置为强制。这将使用户看到一个对话框 再次授予您的应用程序权限

下面是一段来自

// Refresh the token if it's expired.
  if ($client->isAccessTokenExpired()) {
    $client->fetchAccessTokenWithRefreshToken($client->getRefreshToken());
    file_put_contents($credentialsPath, json_encode($client->getAccessToken()));
  }