Facebook:我可以添加一个事件页面作为页面

Facebook:我可以添加一个事件页面作为页面

问题描述:

我只是管理页面和编程脚本添加事件到该页面。我可以使用我自己的帐户,并允许应用程序管理我的页面并将事件添加到该页面。但我希望脚本添加事件,例如我将登录到页面并将事件作为页面发布。我怎样才能在PHP中做到这一点 - 我目前对所有会话,令牌和密钥都有点困惑: - |Facebook:我可以添加一个事件页面作为页面

问候 丹尼斯

+0

http://*.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

要发布,因为你需要得到用户页面管理令牌的页面....

缩略版页的身份验证:(加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

,如果你加入自己作为负责人的页面,不管你把将反映作为页面的名称(如果我没有记错的话)。

+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