2012-10-10 97 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

而不是調用函數,您可以直接放置代碼。 –

相關問題