2011-03-09 96 views
0

我只是管理頁面和編程腳本添加事件到該頁面。我可以使用我自己的帳戶,並允許應用程序管理我的頁面並將事件添加到該頁面。但我希望腳本添加事件,例如我將登錄到頁面並將事件作爲頁面發佈。我怎樣才能在PHP中做到這一點 - 我目前對所有會話,令牌和密鑰都有點困惑: - |Facebook:我可以添加一個事件頁面作爲頁面

問候 丹尼斯

+0

http://stackoverflow.com/questions/5209233/facebook-api-how-to-publish-to-page-feed-while-user-is-offline-without-offline-a/5227048#5227048剛剛發佈了一些其他問題的信息(最終不是他的答案 - 但它應該可以幫助你)從本質上講,你授權應用程序管理帶有脫機預置的頁面(應用程序令牌不會過期)然後,你查詢用戶accoutn Pages令牌(本質上是應用程序令牌允許您爲頁面的用戶管理權限獲取令牌),然後使用該令牌將頁面發佈爲頁面... – CarpeNoctumDC 2011-03-09 09:24:18

+0

添加了我指出的其他答案的縮寫版本。基本上,如果您更改密碼或令牌過期,您將需要更新它...但下面的答案應該讓你在正確的方向。 – CarpeNoctumDC 2011-03-09 09:52:20

回答

0

要發佈,因爲你需要得到用戶頁面管理令牌的頁面....

縮略版頁的身份驗證:(加offline_access) 從http://developers.facebook.com/docs/authentication/

獲得令牌管理premissions和offline_access:(與YOUR_APP_ID和YOUR_URL

https://www.facebook.com/dialog/oauth?client_id=YOUR_APP_ID&redirect_uri=YOUR_URL&scope=manage_pages,offline_access&response_type=token 

一旦你驗證頁面更新,你將被重定向到YOUR_URL ... 在瀏覽器中,你的Wi將會看到重定向URL,哈希,訪問令牌,過期... 複製'token ='和'& expires = 0'之間的所有內容(如果它沒有過期= 0,您沒有做離線訪問提示)

<?php 
require_once('facebook.php'); 

$app_id = "YOURAPPID"; 
$app_secret = "YOURSECRET"; 

$userAppToken = 'TOKENHERE!'; // from authentication 
$pageID = '123456'; 


$facebook = new Facebook(array(
    'appId' => $app_id, 
    'secret' => $app_secret, 
    'cookie' => true 
)); 


$token = array(
    'access_token' => $userAppToken 
); 

// Get the user page admin tokens (account access info) 
$userdata = $facebook->api('/me/accounts', 'GET', $token); 

// Loop through the data and get the token for the page id.. 
foreach($userdata['data'] as $data) { 
    if ($data['id'] == $pageID) { 
     $pageAdminToken = $data['access_token']; 
     continue; 
    } 
} 

// THis is actually for a wall post, but just modify to whatever you want (you must have access_token as it is what authorizes the action for the page..  
// compile the post 
$WallPost = array(
    'message' => 'Test post from my app!', 
    'access_token' => $pageAdminToken 
); // you can also use 'picture', 'link', 'name', 'caption', 'description', 'source'.... 
    //http://developers.facebook.com/docs/reference/api/ 


// post to wall (feed is wall post, just update to whatever you want to publish to) 
$response = $fb->api($pageID . '/feed','GET',$WallPost); 


?> 
+0

謝謝,這就是對的。根據你的回答,我的方式是/使用我的inifite_session_key獲取accessToken,並使用此令牌通過請求graph-api來獲取我的所有帳戶。在返回的帳戶中,我搜索了目標頁面,並使用此頁面的accessToken將事件發佈到頁面上作爲頁面。 – Denis 2011-03-09 11:18:25

+0

你懂了!大聲笑現在爲什麼Facebook不得不讓這個過程如此破裂......我得到第二個令牌有助於確定代表特定頁面的應用程序 - 但仍然......在如此多的層面上,他們可以讓這個過程變得更加簡單.. – CarpeNoctumDC 2011-03-09 11:54:21

1

,如果你加入自己作爲負責人的頁面,不管你把將反映作爲頁面的名稱(如果我沒有記錯的話)。

+0

要有它通過一個腳本來完成,你必須使用通過用戶應用程序令牌從用戶帳戶獲得的頁面令牌:) – CarpeNoctumDC 2011-03-09 09:22:17

+0

我的經驗也是如此。雖然,現在他們可以選擇瀏覽Facebook作爲「頁面」。不過,我認爲lilsizzo是正確的。 – 2011-03-09 09:24:06

+0

儘管腳本訪問因用戶訪問而異...... – CarpeNoctumDC 2011-03-09 09:30:53

相關問題