1

Web サイトで Facebook 自動投稿を有効にしたいと考えています。

最初にアプリを作成し、Facebook ドキュメントに従って、PHP に facebook-sdk を使用し、APP-ID と APP-SECRET を挿入し、LOGIN-URL を作成し、スクリプト (Facebook ドキュメントのようなすべて) に追加しましたが、私はまだ問題があります!!

問題は:

ユーザーが初めて私のページにアクセスすると、ログインリンクが表示されます。それをクリックすると、アプリのアクティビティを許可するための Facebook ダイアログ ページにリダイレクトされます。この後、Facebookがユーザーを私のキャンバスページにリダイレクトすると、ログインリンクが再び表示されます!! (私のスクリプトでは getUser() 関数が正しく機能していないようです!)。

Facebookガイドに基づいて、ユーザーはユーザープロファイルの詳細を確認する必要があります...それでもログインリンクは表示されます。

どうすればこの問題を解決できますか...?

<?php 

        require_once("libs/facebook.php");
        $config = array(
            'appId' => 'XXXX',
            'secret' => 'XXXX'      
        );
        $fbConnect = new Facebook($config);

        $user_id = $fbConnect->getUser();
        if($user_id)
        {
            try {

                $userProfile = $fbConnect->api('/me', 'GET');
                echo "Name: " . $userProfile['name'];

            } catch (FacebookApiException $e) {

                $loginUrl = $fbConnect->getLoginUrl();
                echo "<a href='" . $loginUrl . "'>LOGIN 2</a>";

            }
        }
        else
        {
            $loginUrl = $fbConnect->getLoginUrl(array( 'scope' => 'publish_stream' ));
            echo "<a href='" . $loginUrl . "'>LOGIN 1</a>";
        }
    ?>

ユーザーには常に「LOGIN 1」が表示されます。$user_id が常に null であることを意味します (アプリがアクティビティを許可する前と後)!! アプリの許可後 (ユーザーが loginUrl リンクを初めてクリックしたとき)、URL クエリ文字列に「stat」と「code」が含まれています。それでも「LOGIN 1」が表示されます!

4

1 に答える 1

1

「こんにちは、私は今、Aref の超素晴らしい Facebook アプリを使用しています」のようなメッセージを公開したいと思いますよね?

これは、次の行で実現できます。

<?php
require_once("/FBAPI/src/facebook.php");

$config = array();
$config['appId'] = 'your_app_id';
$config['secret'] = 'your_app_secret';
$facebook = new Facebook($config);

$user = $facebook->getUser();
if(!$user){
    $loginUrl = $facebook->getLoginUrl(array('scope'=>'publish_stream', 'redirect_uri'=>'http://www.example.com'));
}
if($user){
    try{
        $user_profile = $facebook->api('/me');
        $access_token = $facebook->getAccessToken();
        $vars = array(
        'caption' => 'Aref\'s Facebook Application',
        'message' => 'Hey guys, I am now using Aref\'s superawsome Facebook App :D',
        'name' => 'Test',
        'link' => 'http://www.example.com',
        'description' => 'Aref\'s Facebook Canvas App',
        'picture' => 'http://fbrell.com/f8.jpg'
        );
        $result = $facebook->api('/me/feed', 'post', $vars);
        if($result){
            echo "Post was set";
        }
        else{
            echo "Error!";
        }
    }
    catch(FacebookApiException $e){
        error_log($e);
        $user = NULL;
    }
}
else{
    echo '<a href="'.$loginUrl.'"><img src="img/login.png"/></a>';
}
?>
于 2012-05-28T20:32:12.063 に答える