Php 获取页面ID和访问令牌以作为应用程序发布到风扇页面

Php 获取页面ID和访问令牌以作为应用程序发布到风扇页面,php,facebook-graph-api,post,facebook-page,Php,Facebook Graph Api,Post,Facebook Page,在谷歌工作了一天并对目前的情况进行了大量测试之后,鉴于facebook api中离线访问请求的贬值,我找不到一个明确的答案 我试图实现的是,当应用程序本身带有我的主站点正在生成的RSS提要输出时,更新我的应用程序的扇形页面墙(我不太担心在这个阶段阅读/解析RSS部分,我想我已经破解了)。就目前的情况来看,我可以把帖子贴到粉丝页面的墙上,但是这些帖子看起来就像是从我的个人资料(这是粉丝页面的管理员)中发出来的 我创建的应用程序仅供我使用,并用于向我的粉丝页面墙中写入内容。我尝试过使用第三方工具(R

在谷歌工作了一天并对目前的情况进行了大量测试之后,鉴于facebook api中离线访问请求的贬值,我找不到一个明确的答案

我试图实现的是,当应用程序本身带有我的主站点正在生成的RSS提要输出时,更新我的应用程序的扇形页面墙(我不太担心在这个阶段阅读/解析RSS部分,我想我已经破解了)。就目前的情况来看,我可以把帖子贴到粉丝页面的墙上,但是这些帖子看起来就像是从我的个人资料(这是粉丝页面的管理员)中发出来的

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

到目前为止,我使用的PHP只是从fb开发者中心的例子中删除的,正如我所说,我可以成功地发布到墙上,但只能作为我自己

我计划设置一个CRON作业来执行脚本,并运行我的RSS提要,如果有新内容,则更新fb fan页面。鉴于此,我将不会从运行此功能的机器(justhost server)登录到fb

此外,我似乎无法调用http get,因为我认为它在PHP配置中被禁用(我无法在共享主机上更改为Im)。因此,当我试图获取我管理的页面和应用程序数组以查找我的“页面访问令牌”时,我被困在fb dev Center帮助指南中,因为我得到了一个“调用未定义函数http_get()”。我曾尝试使用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);


?>

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

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