0

私は自分のウェブサイトで facebook ログインを使用しています

window.fbAsyncInit = function() {

    // init the FB JS SDK
    FB.init({
      appId      : 'XXX', // App ID from the App Dashboard
      channelUrl : 'XXX/channel.php', // Channel File for x-domain communication
      cookie     : true, // set sessions cookies to allow your server to access the session?
      frictionlessRequests: true
    });

};

問題は、Web サイトから 10 ~ 20 分ごとにログアウトされることです。サイトがリロードされず、再度ログインしました。どうにかしてクッキーが削除されると思います。

そのクッキーをより長く存在させる方法はありますか?

私のログインは次のようになります。

FB.login(function(response) {}, {scope:'publish_actions'});

アップデート:

スクリプトのこの部分は、ユーザーが初めてログインしたときに呼び出されます。

// triggers on first login
if (isset($_GET['first_login'])) {
    if ($me) {
        $facebook->setExtendedAccessToken();
        $friends = $facebook->api('/me/friends');
        $friends = $friends['data'];
        if (!empty($friends)) {
            // sql

        }
        $permissions = $facebook->api("/me/permissions");

        if( array_key_exists('publish_actions', $permissions['data'][0]) ) {
            $attachment = array(
                    'message' => 'XXX',
                    'name' => 'XXX - App',
                    'link' => 'XXX',
                    'description' => 'XXX',
                    'picture'=> 'XXX',
                    'access_token' =>  $facebook->getAccessToken()
            );
            $facebook->api('/'.$facebook->getUser().'/feed', 'POST', $attachment);

            // sql
        }
        header('Location: http:/xxx');
    }
}

しかし、私はエラーが発生します

致命的なエラー: Uncaught OAuthException: (#1) 1254 行目の /facebook/base_facebook.php でスローされた共有の作成中にエラーが発生しました

原因は$facebook->api('/'.$facebook->getUser().'/feed', 'POST', $attachment);

linkから -attributeを削除すると、機能し$attachmentます。リンク属性禁止か何か?

4

1 に答える 1