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

您的错误可能是由于$_SESSION['access_token']. 我曾经使用过 gplus 和 twitter api,他们都使用了那个变量$_SESSION['access_token']

只需在你的谷歌加代码中修改access_tokentoaccess_token_plus或任何你喜欢的东西,这样你就可以避免重写冲突。

于 2013-05-03T09:47:37.167 回答
1

前段时间我也有同样的错误。实际上这个函数 setAccessToken 只接受 json_encoded 字符串(简单地说你在用户认证时得到的 json 编码字符串,它具有访问令牌、刷新令牌、承载等)。您必须将该 json 编码字符串传递给此函数以设置访问令牌。$client = new Google_Client();

$token = $client->getAccessToken(); // 当 google 使用代码在身份验证后将用户重定向到您的重定向 uri 时获取令牌。// $token 将有 json 编码的字符串。

$client->setAccessToken($token); // 现在使用 $token 在此处设置访问令牌

如果您将数组或其他任何 json 编码字符串传递给 setAccessToken,您将收到此错误。

于 2013-04-22T13:34:06.527 回答