我正在使用Facebook SDK在我自己的Facebook頁面上發佈一些測試牆貼。我想要的是每8小時使用PHP CRON腳本在我的Facebook頁面上發佈,因此我必須繞過Facebook登錄對話框頁面,所以有人知道從命令行或在空中進行身份驗證的方式嗎?如何在沒有登錄對話框頁面的情況下驗證facebook sdk?
回答
Authenticating as a Page會給你一個訪問令牌,你可以將它保存在數據庫中,然後使用PHP執行各種任務。
這對使用cron做各種事情很有幫助,比如安排帖子,維護多個頁面,一次發佈到多個頁面,使用Graph API上傳照片和其他許多活動。查看他們的文檔,瞭解如何做到這一點的更多信息。
注意:您只需驗證一次應用程序並保存您的頁面訪問令牌密鑰,一旦您這樣做,您不必再次登錄,只需使用訪問令牌在頁面上執行各種任務。
不,無法繞過Facebook登錄對話框頁面,但對於您的情況,您可以檢索擴展訪問鍵並將其用於張貼到牆上。 您可以使用PHP SDK來獲取訪問令牌使用下面的代碼
$extendedToken = $facebook->setExtendedAccessToken();
$facebook->api('<PAGE_ID>?fields=access_token');
然後只需使用
$facebook->setAccessToken();
張貼到你的頁面。切記在生成擴展訪問令牌之前獲取權限。
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;
}
試試這個。讓我知道如果有任何問題
什麼是$ this-> getContents我在facebook中找不到像這樣的任何方法名稱SDK –
我添加了函數getContents。對不起,錯過了一個。 –
而不是調用函數,您可以直接放置代碼。 –
- 1. 頁面可以在沒有登錄驗證的情況下登錄
- 2. 如何在沒有Facebook應用的情況下登錄Facebook?
- 3. Android Facebook SDK,如何在沒有登錄表單的情況下打開會話
- 4. Android - > Facebook登錄沒有對話框?
- 5. 如何在沒有用戶干預的情況下登錄Facebook?
- 6. 如何在沒有頁面設置對話框的情況下打印?
- 7. C#在沒有登錄的情況下在Facebook頁面上發佈
- 8. 的Facebook SDK登錄對話框兩次
- 9. Facebook的Android SDK登錄對話框
- 10. 防止在沒有登錄的情況下打開頁面
- 11. 驗證Facebook SDK登錄
- 12. 在沒有用戶身份驗證的情況下發布Facebook頁面鏈接
- 13. 如何在沒有登錄對話框的情況下將數據發佈到Facebook牆上?
- 14. 如何在沒有打開對話框的情況下發布在Facebook牆上?
- 15. 在沒有用戶登錄的情況下彈出谷歌登錄頁面
- 16. 如何在沒有通過Google登錄對話框(javascript)登錄的情況下訪問Google analytics api?
- 17. 在沒有登錄的情況下發布到Facebook SDK的新聞源
- 18. 如何在沒有彈出對話框的情況下退出Facebook?
- 19. 如何在沒有登錄或沒有用戶交互的情況下獲取Facebook頁面access_token
- 20. 未使用登錄對話框的iPhone/Facebook身份驗證
- 21. AngularJS + phonegap:在沒有服務器的情況下訪問Facebook登錄/ SDK
- 22. 如何禁用Facebook登錄對話框
- 23. 驗證Facebook用戶沒有Facebook登錄
- 24. 在沒有瀏覽器的情況下登錄到Facebook
- 25. 如何在不登錄ios的情況下從facebook頁面獲取照片
- 26. 如何在沒有登錄到php帳戶的情況下將故事發布到Facebook頁面?
- 27. 如何在沒有按鈕的情況下調用YUI面板/對話框
- 28. 重點哈希沒有得到驗證登錄Facebook的sdk
- 29. 我的頁面在沒有任何驗證的情況下重定向php
- 30. 如何在沒有登錄的情況下在Android上發佈到Facebook Wall?
令牌是否過期? –
是的,它會過期。但是,您可以通過進行API調用來擴展令牌並獲得長壽命令牌(最多60天有效期),然後您可以將其保存到數據庫中。 –