gpt4 book ai didi

php - 谷歌 API - 没有 refresh_token

转载 作者:搜寻专家 更新时间:2023-10-31 21:24:58 25 4
gpt4 key购买 nike

我对 refresh_token 有疑问。我完全不明白。我读到我只在登录后第一次获得此 token ,之后不会返回 refresh_token。第一种方法是初始化 gapi:

initGp: function() {

requirejs(['google'],
function (gapi) {

gapi.load('auth2', function() {
this.auth2 = gapi.auth2.init({
client_id: 'client_id',
scope: 'https://www.googleapis.com/auth/youtube.readonly https://www.googleapis.com/auth/youtube.upload https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/userinfo.email'
});
}.bind(this));
}.bind(this));
},

接下来,当用户点击“连接到 YouTube”按钮时,响应代码将发送到“/connect-google”路由:

connectGp: function() {

var self = this;

this.auth2.grantOfflineAccess({'redirect_uri': 'postmessage'}).then(

function(response) {
$('.gp-button').addClass('loading');
var vars = {
code: response.code
};
$.ajax({
url: myUrl+"/connect-google",
data: vars,
type: "GET",
success: function(response) {
window.location.reload();
}
});
});
},

然后在 PHP 中我有:

$googleClient = new \Google_Client();
$googleClient->setClientId($client_id);
$googleClient->setClientSecret($client_secret);
$googleClient->setRedirectUri('postmessage');
$googleClient->setAccessType("offline");
$googleClient->setScopes($scopes);


$token = $googleClient->authenticate($code);
$access_token = $googleClient->getAccessToken();
var_dump($access_token);

但在 access_token 中我没有收到 refresh_token。为什么 ?是因为我在使用“postmessage”吗?

最佳答案

你可以试试这个,每次都得到 refresh_token。

$googleClient->setApprovalPrompt('force');

然后,一旦您完成构建您的应用程序,您就可以删除这一行。希望能帮助到你。

关于php - 谷歌 API - 没有 refresh_token,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38261188/

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