【问题标题】:Getting Page ID and Access Token to post to Fan Page as Application获取页面 ID 和访问令牌以作为应用程序发布到粉丝页面
【发布时间】:2012-10-22 19:07:26
【问题描述】:

在与谷歌一起工作了一天并进行了大量测试后,鉴于 facebook api 中的offline_access 请求的贬值,我无法找到明确的答案。

我想要实现的是更新我的应用程序的粉丝页面墙,因为应用程序本身使用我的主站点正在生成的 RSS 提要的输出(我不太担心在这个阶段读取/解析 RSS 部分,我想我已经破解了)。就目前情况而言,我可以在粉丝专页墙上发帖,但这些帖子似乎来自我的个人资料(这是粉丝专页的管理员)。

我创建的应用程序仅供我自己使用,并用于写到我的粉丝页面墙上。我尝试过使用第三方工具(RSS Graffiti/Twitter Feed),但它们不符合我的要求,所以我尝试自己写一些东西。

到目前为止,我所拥有的 PHP 只是从 fb 开发人员中心示例中删除的,就像我说的那样,我可以成功地发布到墙上,但只能作为我自己。

我计划设置一个 CRON 作业来执行脚本并运行我的 RSS 提要并在有新内容时更新 fb 粉丝页面。鉴于此,我不会从运行它的机器(justhost 服务器)登录到 fb。

此外,我似乎无法调用 http get,因为我认为它在 PHP 配置中被禁用(我无法在共享主机上更改它)。因此,当我试图获取我管理的页面和应用程序数组以找出我的'页面访问令牌'。我尝试使用 curl 来返回它,但我无法正确地实现它,因为当我使用以下代码转储响应时,我只得到“resource(4) of type (curl)”:

//get user access token
$access_token = $facebook->getAccessToken();

//get page access token
$response  = curl_init("https://graph.facebook.com/me/accounts?access_token=".$access_token);
var_dump($response);

即使我拥有了这个并且可以在这种情况下让它工作,我很困惑当这个令牌过期时会发生什么,以及如何在不需要我每 2 小时或 60 小时编辑一次脚本的情况下更新它令牌到期的天数。

任何人都可以提供任何帮助来获取此页面访问令牌,然后在通过 CRON 作业从远程服务器上的脚本运行时使其保持活动状态。

这是我目前的代码:

<?php

require '../src/facebook.php';

// Create our Application instance (replace this with your appId and secret).
$facebook = new Facebook(array(
'appId'  => 'XXXHIDDENTHISXXX',
'secret' => 'XXXHIDDENTHISXXX',
'cookie' => true
));

// Get User ID
$user = $facebook->getUser();



if ($user) {
try {
// Proceed knowing you have a logged in user who's authenticated.
$user_profile = $facebook->api('/me');
} catch (FacebookApiException $e) {
error_log($e);
$user = null;
}
}

// Login or logout url will be needed depending on current user state.
$params = array(
'scope' => 'publish_stream',
'redirect_uri' => 'http://autos.sevende.com.gt/rss_to_facebook/pages/'
);

if ($user) {
$logoutUrl = $facebook->getLogoutUrl($params);
} else {

$loginUrl = $facebook->getLoginUrl($params);

}

//get user access token
$access_token = $facebook->getAccessToken();

//get page access token
$response  = curl_init("https://graph.facebook.com/me/accounts?access_token=".$access_token);
var_dump($response);

https://graph.facebook.com/me/accounts?access_token=USER_ACCESS_TOKEN

//set fanpage_id
$page_id = '234830586618763';

$attachment = array(

'link' => 'http://autos.sevende.com.gt/listing/565/');

$result = $facebook->api('/'.$page_id.'/feed?access_token='.$access_token, 'post', $attachment);


?>

【问题讨论】:

    标签: php facebook-graph-api post facebook-page


    【解决方案1】:

    不,您不能发布“作为”应用程序。

    您可以作为用户或页面发布,但不能作为应用程序发布。执行这两种方法的方法都有很好的记录,尽管您上面的代码接近“作为页面发布”的说明

    【讨论】:

      猜你喜欢
      • 2013-02-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-24
      • 1970-01-01
      • 2023-03-07
      • 2012-01-30
      相关资源
      最近更新 更多