2012-10-10 65 views

回答

2

Authenticating as a Page会给你一个访问令牌,你可以将它保存在数据库中,然后使用PHP执行各种任务。

这对使用cron做各种事情很有帮助,比如安排帖子,维护多个页面,一次发布到多个页面,使用Graph API上传照片和其他许多活动。查看他们的文档,了解如何做到这一点的更多信息。

注意:您只需验证一次应用程序并保存您的页面访问令牌密钥,一旦您这样做,您不必再次登录,只需使用访问令牌在页面上执行各种任务。

+0

令牌是否过期? –

+0

是的,它会过期。但是,您可以通过进行API调用来扩展令牌并获得长寿命令牌(最多60天有效期),然后您可以将其保存到数据库中。 –

-1

不,无法绕过Facebook登录对话框页面,但对于您的情况,您可以检索扩展访问键并将其用于张贴到墙上。 您可以使用PHP SDK来获取访问令牌使用下面的代码

$extendedToken = $facebook->setExtendedAccessToken(); 
$facebook->api('<PAGE_ID>?fields=access_token'); 

然后只需使用

$facebook->setAccessToken();

张贴到你的页面。切记在生成扩展访问令牌之前获取权限。

2

Facebook为用户提供访问令牌以使用Facebook应用程序。对于第一次,用户必须通过Facebook登录登录,登录到网站后,它将要求访问该应用程序的权限。一旦用户接受,然后Facebook将返回一个代码throgh网址。你必须采取的代码,并用它来获得访问令牌

通过使用下面的代码

$url = "https://graph.facebook.com/oauth/access_token?client_id=". $yourappId ."&redirect_uri=". urlencode($this->redirect_url) ."&client_secret=". $youappsecret."&code=". $code; 
$auth_token = $this->getContents($url); 

$str = explode('=',$auth_token); 
$token = explode('&expires', $str[1]); 

这里$令牌将有用户的访问令牌,U可以在令牌存储在乌尔本地数据库和使用该令牌将消息发布到Facebook墙上。其简单..多数民众赞成在所有。

要发布的消息FB上墙

$fb_id  = "User_fb_id" 
$access_token = "User_Access_Token_Take by Above code" 
$msg  = "Message_to_post" 
$img_path  = "Image_Path"  
$facebook = new Facebook(array(
'appId' => $this->appId, 
'secret' => $this->secret, 
'cookie' => true)); 
if($msg != NULL) { 
$attachment = array(
'message' => $msg, 
'name' => 'NHM',             
'picture' => $img_path); 
} 
try {$result = $facebook->api('/'. $fb_id . '/feed/', 
            'post', 
            $attachment); 

       if(isset($result['id'])) 
       return true; 
      else 
       return false; 
      } catch(FacebookApiException $e) { 
      return $e->getMessage(); 
     } 

在这里,你必须Facebook的用户用户ID。要获取用户ID使用以下代码

$url = "https://graph.facebook.com/me?access_token=". $access_token; 
$userInfo = $this->getContents($url); 
$userInfo = json_decode($userInfo, true); 


public function getContents($url) { 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL,$url); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
$content = curl_exec ($ch); 
curl_close ($ch); 
return $content; 
} 

试试这个。让我知道如果有任何问题

+0

什么是$ this-> getContents我在facebook中找不到像这样的任何方法名称SDK –

+0

我添加了函数getContents。对不起,错过了一个。 –

+0

而不是调用函数,您可以直接放置代码。 –

相关问题