[英]Facebook php-sdk writing in response body
我對Facebook php-sdk-v4有問題。
我有一個使用Symfony2的后端服務器和一個移動應用程序作為客戶端。
對於身份驗證,我使用FOSOAuthServerBundle 。
我嘗試在移動應用程序中使用Facebook登錄。
為了在移動應用程序中對用戶進行身份驗證,我使用Android(或IOS)Facebook SDK並檢索了facebook_access_token和facebook_userID 。
我將它們發送到服務器,在該服務器上我使用以下代碼檢查facebook_access_token是否有效,其中$socialToken
是從移動應用程序接收的facebook_access_token ,而$socialId
是從移動應用程序接收的facebook_userID :
$facebook = new Facebook(array(
'app_id' => self::FACEBOOK_APP_ID,
'app_secret' => self::FACEBOOK_SECRET,
'default_graph_version' => 'v2.4',
'default_access_token' => $socialToken
));
$result = $facebook->get('/me');
$this->socialDetails = $result->getGraphUser();
if ($this->socialDetails->getId() != $socialId) {
$this->logger->info("checkFacebookAccessToken : Token is NOT valid");
return false;
}
$this->logger->info("checkFacebookAccessToken : Token is valid");
return true;
這段代碼工作正常。 令牌通過驗證后,我將請求轉發到FOSOAuthServerController生成訪問令牌,然后使用以下命令將此access_token返回到移動應用程序:
return $response = $this->get('fos_oauth_server.controller.token')->tokenAction($request);
該代碼也起作用。 但是問題在於,發送到移動應用程序的響應正文如下:
object(Facebook\GraphNodes\GraphUser)#616 (1) {
["items":protected]=>
array(2) {
["name"]=>
string(16) "John Doe"
["id"]=>
string(15) "123456789012345"
}
}
{
"access_token":"myAccessToken",
"expires_in":3600,
"token_type":"bearer",
"scope":null,
"refresh_token":"myRefreshToken"
}
代替 :
{
"access_token":"myAccessToken",
"expires_in":3600,
"token_type":"bearer",
"scope":null,
"refresh_token":"myRefreshToken"
}
似乎Symfony 追加了2個響應正文 。 但是,當我記錄由FOSOAuthServerBundle控制器返回的響應時,它僅顯示第二個響應。
也許Facebook php-sdk直接寫在響應正文中。 在將請求轉發到FOSOAuthServerBundle控制器之前,是否可以刪除響應主體的內容?
好像您忘記了var_dump($this->socialDetails);
您代碼中的某個地方。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.