微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – 使用Graph API从公开的Facebook页面获取壁纸 – 这真的是复杂的吗?

我已经开始阅读 Displaying Facebook posts to non-Facebook users这是有用的,但我不敢相信这是很难从Facebook获得公共饲料.

我想要一个Feed页面是公开的,您不需要登录即可.

假设我需要一个access_token来获取这些信息,尝试访问URL而不会导致OAuth错误.

所以流程应该是这样的(大量,过于复杂):

>使用用户验证(如果用户不在Facebook上怎么办?)
>一些复杂的OAuth废话 – 只是为了阅读Feed,我甚至不想要一个像按钮或贴在墙上的功能
>使用用户的access_token,使用PHP请求获取正确的URL
渲染饲料

假设用户不在Facebook上,你做什么,使用通用应用程序获取Feed

>使用我的通用应用程序的ID和秘密,将身份验证请求硬编码到Facebook
>一些复杂的OAuth废话
>使用应用程序的access_token,使用PHP请求获取正确的URL
渲染饲料
>哦,不,auth已经过期,重新认证并捕获这个新的access_token以供将来的请求使用.

这似乎真的很复杂,除了Facebook想知道一切正在发生的事情之外,没有任何理由,使用XPath更容易做一个cURL和从公共URL中删除内容.

对此的任何帮助将是巨大的.

谢谢,
可靠的人

编辑

显示此的编辑不是完全重复的.

我有一个access_token的工作,但现在它失败了,令牌已经过期,我不能再使用它从公共墙壁获取信息.

我试图使用其他帖子中提到的方法来延长此令牌的到期日期,但是这并没有起作用,而且到期日期还没有延长 – 我们现在在这里,使用无效的令牌,而不会再延续.

看来,必须批准OAuth请求的手动过程意味着无法以编程方式获取公共页面Feed.

两年之后,您可以使用Facebook应用程序(使用PHP和Slim的示例)以编程方式执行此操作: https://developers.facebook.com/apps/
$base_api="https://graph.facebook.com/";
$client_id="XXXXXX";
$app_secret="XXXXXX";

//get a profile Feed (can be from a page,user,event,group)
$app->get('/Feed/:profileid/since/:start_date',function ($profile_id,$start_date) {

    $start_time=date('m/d/Y h:i:s',$start_date);

    $request = new FacebookRequest(
      getSession(),'GET','/'.$profile_id.'/Feed?since='.$start_time
    );

    $response = $request->execute();
    $graphObject = $response->getGraphObject();

    //do something with $graphObject

});


function getSession(){
    $session = new FacebookSession(getAccesstoken());
    return $session;
}


function getAccesstoken(){
    global $base_api,$client_id,$app_secret;
    $url=$base_api."oauth/access_token?client_id=".$client_id."&client_secret=".$app_secret."&grant_type=client_credentials";
    $str = file_get_contents($url);
    $token = str_replace ( "access_token=","",$str );
    return $token;
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返回预支付订单号的接口,目前微信支付所有场景均使用这一接口。下面介绍的是其中NATIVE的支付实现流程与PC端实现扫码支付流程
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返回预支付订单号的接口,目前微信支付所有场景均使用这一接口。下面介绍的是其中APP的支付的配置与实现流程
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户信息这个功能的开发流程。 配置 1.首先得在微信公众平台申请一下微信小程序账号并获取到小程序的AppID和AppSecret https://mp.weixin.qq.com/cgi-bin/loginpage?url=%2Fwxamp%2F
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一款开源且免费商用的后台开发框架,它基于ThinkPHP和Bootstrap两大主流技术构建的极速后台开发框架,它有着非常完善且强大的功能和便捷的开发体验,使我逐渐喜欢上了它。
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛,就离不开通讯了,然后我就想到了长连接。这里本人用的是GatewayWorker框架。
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返回预支付订单号的接口,目前微信支付所有场景均使用这一接口。下面介绍的是其中JSAPI的支付实现流程
服务器优化必备:深入了解PHP8底层开发原理
Golang的网络编程:如何快速构建高性能的网络应用?
Golang和其他编程语言的对比:为什么它的开发效率更高?
PHP8底层开发原理揭秘:如何利用新特性创建出色的Web应用