1

在这个网站上搜索了一个答案后,我正用这个来拉扯我的头发。

我已经从我的服务器中获取了应用程序代码,并将其在本地下载到 WAMP 以供某些本地开发人员使用。我似乎无法让我的基本 fb 登录工作。我在 fb 中创建了一个指向 hxxp://localhost/ 的新应用程序。将我的代码更新为新的 appid 和密码。在 WAMP 中启用 CURL。

此代码显示到 facebook 对话框的链接,或者不显示。我能够登录并返回我的网站,但是 $user = $facebook->getUser(); 总是返回零:

function getLoginURL()
{
if (DEBUG=='true')
{
    error_log("running getLoginURL", 0);
}

$facebook = new Facebook(array(
    'appId'  => APP_ID,
    'secret' => SECRET,
    'fileUpload' => true
));
$user = $facebook->getUser();
echo "User:" . $user ;
if($user && userHasPermissions())
{
    //user has permissions and is logged in

    $me= $facebook->api('/me'); 
    $con = getConn();   
    $query="select * from users where fb_id='".$user."';";
    $result=mysql_query($query);     
    $result=mysql_query($query);     
    while ($row = mysql_fetch_assoc($result)) 
    {
      $userid =  $row['id'];
    }                                       

  if (mysql_num_rows($result) == 0)
    {
        if (DEBUG=='true')
    {
        error_log("Got Newb", 0);
    }
        // Got a newbie, now we need to add him into our db                 
        $query2= "INSERT INTO users (fb_id ,name ,email) VALUES ('".$user."','". $me['name']."','". $me['email']."')";
        $result2=mysql_query($query2);                          
        $facebook->api("/me/feed", "post", array(
        message => NEWUSERWALLPOSTMESSAGE,
        picture => BASEURL . NEWUSERWALLPOSTIMAGE,
        link => BASEURL,
        name => SITENAME . SITEMOTTO,
        caption => SITENAME . " welcomes you!"
        ));
        echo "<script language='javascript'> window.location='". BASEURL. "';</script>" ;
    }
    else
    {       
        if (DEBUG=='true')
    {
        error_log("Updating user data", 0);
    }                   
        $query3 = "UPDATE  users SET  email='". $me['email']. "',access_token='". $facebook->getAccessToken() ."',name='". $me['name'] ."' WHERE  id=". $userid .".;";                                                              
        $result3=mysql_query($query3);                                                                                                  
    }
  return null;
} 
else 
{
    //echo "getting URL";
    if (DEBUG=='true')
    {
        error_log("Returning LoginURL", 0);
    }
    $loginUrl = $facebook->getLoginUrl(
    array('scope' => 'publish_stream,user_photos,offline_access,email'));   

}
if($user)
{
    if (DEBUG=='true')
    {
        error_log("Updating AccessToken", 0);
    }
    $access_token = $facebook->getAccessToken();
    $query3 = "UPDATE  users SET  email='". $me['email']. "',access_token='". $facebook->getAccessToken() ."',name='". $me['name'] ."' WHERE  id=". $userid .";";                                                               
    $result3=mysql_query($query3);  
}
else
{

    }
    return $loginUrl;
}

更新:

经过几个小时的调查,我运行本地主机的网络似乎已经阻止了 API 调用 home 所需的端口。这可以解释为什么 CURL 有效但没有数据返回。

4

0 回答 0