【发布时间】:2017-12-28 09:22:08
【问题描述】:
我已经解决了这个问题: 出于某种原因,来自 /oauth/access_token 的响应变成了有效的 JSON。 parse_str 函数解析了错误的格式。对我来说,更改 library/hybridauth/Hybrid/thirdparty/Facebook/base_facebook.php 中的这一行解决了这个问题:
请更改此代码
public function setExtendedAccessToken() {
$response_params = array();
parse_str($access_token_response, $response_params);
if (!isset($response_params['access_token'])) {
return false;
}
}
public function getAccessTokenFromCode($code, $redirect_uri = null) {
$response_params = array();
parse_str($access_token_response, $response_params);
if (!isset($response_params['access_token'])) {
return false;
}
}
改为:
public function setExtendedAccessToken() {
$response_params = json_decode($access_token_response, true);
// Not a valid JSON format
if(!isset($response_params['access_token'])) {
// Try to parse
$response_params = array();
parse_str($access_token_response, $response_params);
if (!isset($response_params['access_token'])) {
return false;
}
}
}
public function getAccessTokenFromCode($code, $redirect_uri = null) {
$response_params = json_decode($access_token_response, true);
// Not a valid JSON format
if(!isset($response_params['access_token'])) {
// Try to parse
$response_params = array();
parse_str($access_token_response, $response_params);
if (!isset($response_params['access_token'])) {
return false;
}
}
}
【问题讨论】:
标签: yii hybridauth