未经用户验证就将链接发布到Facebook页面

问题描述

| 基本上,我有一个Web应用程序,它将发布指向Facebook页面(而非个人资料)墙的链接。 据我所知,我需要一个永久令牌来执行此操作。 Twitter给了我一个直接的帐户,所以我希望Facebook会有类似的东西。但是我获得“ 0”许可的令牌已到期。 根据身份验证文档,这是我一直在做的事情: 请求令牌来管理页面:
https://www.facebook.com/dialog/oauth?client_id=123456789123&redirect_uri=http://myapp.com/fb&scope=manage_pages&response_type=token
获取令牌返回的URL,我打算将其粘贴到我的应用程序配置中:
http://myapp.com/fb#access_token=123123123123123%7C2.18VYbalblablablaswhg__.3600.1304294400.1-615173155%7CTzb_U9ma0LIPJXNzqsZ_xUJpfn8&expires_in=4205
当我实际上尝试以此发布到页面时,我收到了过期错误。
$post_params = array(
\'access_token\' => self::$page_token,\'message\' => $string
);
$response = $fb_app->api(\'/\'.self::$page_id.\'/feed\',\'POST\',$post_params);
    

解决方法

您需要offline_access权限才能获取永久令牌。 如果您打算以页面本身的形式发布,则需要从/ USER_ID / accounts获取该页面的令牌,否则您将从个人资料中发布。如果您不打算以页面形式发布,则实际上并不需要manage_pages权限,用户的publish_stream就足够了。祝好运。     

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...