1

我目前正在 zend 框架中开发社交引擎。社交引擎有这个内置插件,即使您已注销 Facebook 网站,也可让您与 Facebook 保持联系。因此,当您在我的社交引擎网站上发布状态时,即使您没有登录 facebook 网站(我的意思是在 facebook.com 中),它仍然会发布在您的墙上,但我不知道该怎么做我在社交引擎中的自定义小部件,这就是为什么我认为我应该只使用 Facebook SDK。

我成功使用了 Facebook SDK,但问题是每次脚本检测到用户未登录 facebook.com 时,它都会要求用户登录。这个怎么解决??

我实际上可以检索诸如 openid、facebookemail 之类的用户详细信息。是的,这只是我知道的:(

4

1 回答 1

1

我在 Zend-Framework 中开发了相同类型的应用程序。我已经将 Facebook/PHP-SDK 与 oAuth 2.0 一起使用。

在这种情况下,您需要在数据库中为特定用户保存访问令牌。并且使用该访问令牌,您可以获得任何数据以及发布到。是的,您需要为您的 Facebook APP 授予用户必要的许可。

这是我在应用程序中用于获取访问令牌、扩展它并存储在数据库中的两个函数。

 /**
     * Getting User Acess Tocken , extended it and save it in to database......
     */
    public function getAccessToken($user_id,$fb_account_id)
    {
         $access_token=$this->facebook->getAccessToken();               
         $extended_access_token=$this->getExtendedAccessToken($access_token);                
        /** 
         * To save Access tocken and other necessary option
         */  
        $usr_bus_model = new Application_Model_UserBusinessAccounts;

        $usr_bus_model->loadAccount($user_id,'Facebook',(int)$fb_account_id);

        $usr_bus_model->details=$extended_access_token;
        $usr_bus_model->save();

        return $extended_access_token;
    }

     /**
     * Exrending User Acess Tocken.....
     */

    public function getExtendedAccessToken($access_token)
    {       

        $token_url="https://graph.facebook.com/oauth/access_token";
        $params=array('client_id'=>self :: appId,'client_secret'=>self :: appSecretId,'grant_type'=>'fb_exchange_token','fb_exchange_token'=>$access_token);

          $response = $this->curl($token_url,$params);
          $response = explode ('=',$response);
          $response = explode ('&',$response[1]);
          $response = $response[0];       
          return $response;

    }

希望能帮助到你。

于 2012-07-27T10:02:15.010 回答