我试图通过Facebook从Angular登录。我的后端是Laravel。
我设法获得了Facebook代码并将其交换为访问令牌。
我现在得到的回应在我的控制台中看起来像这样:
EmailAddress
所以我试图在我的php后端只获取访问令牌。我怎么能这样做?
我尝试了几种方法,但到目前为止还没有。 当试图读出来时,我得到了一个
不能使用GuzzleHttp \ Psr7 \ Response类型的对象作为数组
Laravel出错。
我也尝试通过foreach
读出来 {"access_token":"XXXXXXX","token_type":"bearer","expires_in":5182122}
但是$ responseArray在返回前端时是空的。
有人可以给我一个提示吗?
编辑: 附加信息:
A。)我如何获得代码:
$responseArray = array();
foreach ($token as $key => $value){
$responseArray[] = $value;
}
return($responseArray);
B。)JSON-String似乎是一个Object。这是我通过PostMan-Request获得的。
部首:
$client = new GuzzleHttp\Client();
$token = $client->get($accessTokenUrl, ['query' => $params]);
return ($token);
体
content-length → 281
content-type → application/json; charset=UTF-8
date → Thu, 06 Aug 2015 19:15:24 GMT
expires → Sat, 01 Jan 2000 00:00:00 GMT
facebook-api-version → v2.3
var dump
{
"access_token": "XXXXXXXXX",
"token_type": "bearer",
"expires_in": 5154312
}
答案 0 :(得分:0)
好的,我设法解决了这个问题。我将在以下案例中发布答案。当试图通过Guzzlehttp检索FacebookData时,其他人遇到同样的问题。
GuzzleHttpRequest: 首先我们获取数据并将其转换为字符串:
$request = $client->get($graphApiUrl, ['query' => $params]);
$data = $request->getBody()->getContents();
之后我使用foreachloop读出字符串并将其转换为数组。
$dataArray = array();
foreach (explode(",", $data) as $singleData) {
list ($cKey, $cValue) = explode(':', $inf, 2);
$dataArray[$cKey] = $cValue;
}
之后只需将其读出来,例如:
return($dataArray['name']);