读出Facebook-Response单一价值

时间:2015-08-06 11:48:29

标签: php json facebook facebook-graph-api laravel

我试图通过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
}

1 个答案:

答案 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']);