2011-12-02 142 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