このサイトで答えを検索したので、これで髪を引っ張っています。
サーバーからアプリコードを取得し、ローカル開発者向けにローカルで WAMP にプルダウンしました。基本的な fb ログインが機能しないようです。fb で hxxp://localhost/ に向けた新しいアプリを作成しました。コードを新しい appid と secret に更新しました。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 がホームにコールするために必要なポートをブロックしているようです。これで、CURL が機能するのにデータが戻ってこない理由が説明できます。