1

このサイトで答えを検索したので、これで髪を引っ張っています。

サーバーからアプリコードを取得し、ローカル開発者向けにローカルで 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 が機能するのにデータが戻ってこない理由が説明できます。

4

0 に答える 0