0

我正在使用 Codeignitor 。

我想通过我的应用程序发布到 Facebook。

问题是它总是返回你没有登录。

我在这里尝试过..

function postTofb()
{


require_once("pocket/fb/facebook.php");
        $fbconfig = array();
        $fbconfig['appId'] = 'app_id';
        $fbconfig['secret'] = 'app_secret';
        $fbconfig['baseurl']    = "site_name";

                $facebook = new Facebook($fbconfig);
        $user = $facebook->getUser();


               if($user)
           {
            try {

                $user_profile = $facebook->api('/me');
            $ID = $user_profile['id'];
            echo $ID;

                 } 
        catch (FacebookApiException $e) 
        {

        echo $e;

             }


        }
        else
        {

        //else starts

            $loginUrl   = $facebook->getLoginUrl(
            array(
                'scope'=> 'email,offline_access,publish_stream,user_birthday,user_location,user_work_history,user_about_me,user_hometown',
                'redirect_uri'=>$fbconfig['baseurl']
            )
        );
    $data["status"] = FALSE;
    $data["url"] = $loginUrl;
    echo json_encode($data);
    //else ends
        }
    }

现在我通过 ajax 调用该函数......但它总是以 FALSE 响应......我的意思是 else 部分。

我在这里得到什么

{"status":false,"url":"https:\/\/www.facebook.com\/dialog\/oauth?client_id=281255791959236&redirect_uri=http%3A%2F%2Fwww.MY_SITE_NAME.com%2F&state=3d19a96f48022344222f518609f30537&scope=email%2Coffline_access%2Cpublish_stream%2Cuser_birthday%2Cuser_location%2Cuser_work_history%2Cuser_about_me%2Cuser_hometown"}

看起来我错过了一些点......请帮助我..

谢谢你。

4

2 回答 2

0

该问题与 LoginUrl 有关

我删除了一些权限参数并且它起作用了。

loginUrl = $facebook->getLoginUrl(array("scope")=>"publish_stream");

谢谢你。

于 2012-04-24T05:21:21.347 回答
0

facebook 不再支持离线访问,您唯一能做的就是生成一个最长 60 天的令牌。

于 2012-04-23T16:38:21.007 回答