在这个网站上搜索了一个答案后,我正用这个来拉扯我的头发。
我已经从我的服务器中获取了应用程序代码,并将其在本地下载到 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 有效但没有数据返回。