私の目的は、グーグルプラスで1回限りのログインを提供することです。基本的に、アクセストークンを保存して、ユーザーが戻ってきたときに再利用したいと思います。私は過去2日間、多くのフォーラムを試し、さまざまなコードを試しました。動いていない。誰か助けてくれませんか。
初回ログインコード:
$client = new apiClient();
$client->setApplicationName("xxxx");
$client->setAccessType("offline");
$client->setClientId(GCLIENT_ID);
$client->setClientSecret(GCLIENT_SECRET);
$client->setRedirectUri('xxxx');
$client->setDeveloperKey('xxxx');
$client->setScopes(array('https://www.googleapis.com/auth/plus.me'));
$url = $client->createAuthUrl();
//redirected to this url
リターンURLのコード
$client = new apiClient();
$client->setApplicationName("xxxx");
$client->setClientId(GCLIENT_ID);
$client->setClientSecret(GCLIENT_SECRET);
$client->setRedirectUri('xxxx');
$client->setDeveloperKey('xxxx');
$client->setScopes(array('https://www.googleapis.com/auth/plus.me'));
$client->setAccessType("offline");
$plus = new apiPlusService($client);
if (isset($_GET['code'])) {
$client->authenticate();
$_SESSION['access_token'] = $client->getAccessToken();
gp_reg($_SESSION['access_token']);
**//this function saves the access token to the database**
}
ユーザーが戻ったとき
$client = new apiClient();
$client->setApplicationName("xxxx");
$client->setClientId(GCLIENT_ID);
$client->setClientSecret(GCLIENT_SECRET);
$client->setRedirectUri('xxxxx');
$client->setDeveloperKey('xxxx');
$client->setScopes(array('https://www.googleapis.com/auth/plus.me'));
$client->setAccessType('online');
$client-> setApprovalPrompt("auto");
$plus = new apiPlusService($client);
print_r($row['token']);
$client->setAccessToken($row['token']);
// **$row['token'] contains the token from database**
エラーメッセージ:
致命的なエラー:/opt/bitnami/apache2/htdocs/src/auth/apiOAuth2.php:144スタックトレースのキャッチされていない例外「apiAuthException」とメッセージ「アクセストークンをjsonでデコードできませんでした」が「$client-」の上の最後の行につながります> setAccessToken($ row ['token']) "
どんな助けでも大歓迎です