0

私の google+ api コードは機能していました。突然、次の行でエラーが発生します。どんな助けでも大歓迎です。

if (isset($_SESSION['access_token'])) {
$client->setAccessToken($_SESSION['access_token']);
}

エラーメッセージは次のとおりです

 Warning: json_decode() expects parameter 1 to be string, array given in /opt/bitnami/apache2/htdocs/goo/src/auth/apiOAuth2.php on line 142 Fatal error: Uncaught exception 'apiAuthException' with message 'Could not json decode the access token' in /opt/bitnami/apache2/htdocs/goo/src/auth/apiOAuth2.php:144 Stack trace: #0 /opt/bitnami/apache2/htdocs/goo/src/apiClient.php(186): apiOAuth2->setAccessToken(Array) #1 /opt/bitnami/apache2/htdocs/goo/googlep.php(1196): apiClient->setAccessToken(Array) #2 {main} thrown in /opt/bitnami/apache2/htdocs/goor/src/auth/apiOAuth2.php on line 144
4

2 に答える 2

1

私も少し前に同じエラーがありました。実際には、この関数 setAccessToken は json_encoded 文字列のみを受け入れます (単に、アクセス トークン、リフレッシュ トークン、ベアラーなどを持つユーザー認証時に取得する json エンコード文字列を言います)。アクセス トークンを設定するには、json でエンコードされた文字列をこの関数に渡す必要があります。$client = 新しい Google_Client();

$token = $client->getAccessToken(); // 認証後に Google がユーザーをコードでリダイレクト URI にリダイレクトするときにトークンを取得します。// $token には json でエンコードされた文字列が含まれます。

$client->setAccessToken($token); // ここで、その $token を使用してアクセス トークンを設定します

配列またはjsonでエンコードされた文字列をsetAccessTokenに渡すと、このエラーが発生します。

于 2013-04-22T13:34:06.527 に答える