2011-12-02 71 views
0

我被困在一個簡單的fb登錄的執行過程中已經5天了,而且我像媽媽一樣砰砰地打了我的腦袋。無論如何。facebook access_token請求返回NOTHING

我現在正試圖手動設置accessToken。 像這篇文章中所示。

https://github.com/facebook/php-sdk/issues/418#issuecomment-2605012

唯一的問題是,基於OAuth的認證/調用的access_token返回什麼 和我猜測,這是一個相當搞砸行爲。 這是我用它來撥打電話

   $token_url = "https://graph.facebook.com/oauth/access_token?client_id=".FB_APPID."&redirect_uri=".urlencode($curUrl)."&client_secret=".FB_APPSECRET."&code=".$_GET['code']; 
       log_to_file("curPageURL: ".$token_url); 
       $response = file_get_contents($token_url); 
       log_to_file("resp: ".$respone); 

的log_to_file是記錄在一個文件中取出的消息,這樣我可以在一個尾日誌情況-f場景中CUSTM方法的片段。

這裏發生的是日誌「resp:」。完全沒有返回。

有沒有人遇到同樣的問題?

thx提前。這件事讓我瘋狂。

我可以正式說明fb sdk是我用過的最有問題,也是最差的記錄服務 。

回答

3

Facebook擁有世界上最糟糕的API。我記得我使用它的時間,並且忍不住總是發誓! :)這是一段爲我工作的僞代碼。它獲得用戶的許可以在他的牆上張貼鏈接。我只是張貼這樣或許你可以採取一些提示,使您的工作代碼:

<?php 

//A function for cURL operations. 
function callFb($url) 
{ 
      $ch = curl_init(); 
      curl_setopt_array($ch, array(
       CURLOPT_URL => $url, 
       CURLOPT_RETURNTRANSFER => true 
      )); 

      $result = curl_exec($ch); 
      curl_close($ch); 
      return $result; 
} 

$url = "https://graph.facebook.com/oauth/access_token?client_id=<your_client_id>&redirect_uri=".urlencode("<the_url_where_the_user_is_redirected_after_granting_permission>")."&client_secret=<your_client_secret>"; 

/* Get access token. */ 
$access_token = callFb($url); 

/* Parse the result to get access token */ 
$access_token = substr($access_token, strpos($access_token, "=")+1, strlen($access_token)); 

/* Save access token, if you want to for future.*/ 
mysql_query("INSERT INTO fb_auth_tokens (id,auth_token) VALUES('$_GET[id]','$auth_token')"); 

/* Post to users wall */ 

$apprequest_url = "https://graph.facebook.com/me/feed"; 
$mymessage="Hello World !"; 
$parameters = "?access_token=" . $access_token . "&message=" . 
urlencode($mymessage) . 
     "&link=".urlencode("<link_that_you_want_to_post>"). 
     "&description=<description_of_the_link>". 
     "&method=post"; 
$myurl = $apprequest_url . $parameters; 
$result = callFb($myurl); 

// Thy shall be done. :) 
+0

好笑,我結束了,如果沒有閱讀烏爾答覆使用捲曲的解決方案。無論如何,對我來說,它也像魅力一樣起作用。祕密是手動設置你的授權令牌,我不能相信它。 fb sdk是一塊垃圾。 – holographix