经过多次研究后,我现在可以使用我的php代码检索我的gmail收件箱,但我想知道是否可以获得API的永久令牌访问权限而不必强制使用OAuth登录。
我正在制作一个可以检索3个不同gmail收件箱的小应用程序,而那些使用我的应用程序的人不会浪费时间将我的gmail应用程序授权给不同的收件箱。
我的意思是,有没有办法避免授权每次我尝试检索我的gmail收件箱,如永久令牌访问我只会得到一次,然后将其存储到我的数据库?
感谢您的帮助。
答案 0 :(得分:1)
没有永久令牌,但有刷新令牌:
的摘录Handling authorization requests
交换访问令牌的授权码
授权码是您的服务器可以使用的一次性代码 交换访问令牌。此访问令牌将传递到Gmail API允许您的应用程序在有限的时间内访问用户数据。
如果您的应用需要离线访问,则第一次使用您的应用 交换授权代码,它还接收刷新令牌 它用于在前一个令牌之后接收新的访问令牌 过期。您的应用程序存储此刷新令牌(通常在一个 服务器上的数据库)供以后使用。
重要提示:始终存储用户刷新令牌。如果您的应用需要 新的刷新令牌必须使用approval_prompt发送请求 查询参数设置为强制。这将使用户看到一个对话框 再次授予您的申请许可。
// Refresh the token if it's expired.
if ($client->isAccessTokenExpired()) {
$client->fetchAccessTokenWithRefreshToken($client->getRefreshToken());
file_put_contents($credentialsPath, json_encode($client->getAccessToken()));
}