0

经过一天与谷歌和大量测试目前存在的内容后,鉴于 facebook api 中的 offline_access 请求的贬值,我无法找到明确的答案。

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

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

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

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

此外,我似乎无法调用 http get,因为我认为它在 PHP 配置中被禁用(我无法在共享主机上更改它)。因此,当我试图获取我管理的页面和应用程序数组以找出答案时,当我收到“调用未定义函数 http_get()”时,我停留在 fb 开发中心帮助指南中的这一点,就像页面一样进行身份验证我的“页面访问令牌”。我尝试使用 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);


?>
4

1 回答 1

1

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

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

于 2012-06-13T14:38:30.307 回答