【问题标题】:how to post facebook user wall/ page status by a single user only no app install for other users如何仅由单个用户发布 facebook 用户墙/页面状态 不为其他用户安装应用程序
【发布时间】:2012-10-18 06:56:41
【问题描述】:

我在一个网站上工作,如果在上面发布了某些内容,我需要将该网站的页面链接发布到一个特殊的用户墙或页面,这意味着我只需要一个用户来发布该问题。

我面临的问题是访问令牌,因为我不想在网站流量前显示 facebook 登录页面。它不像在用户墙上分享,我们基本上是在尝试自动在页面上发布状态,所以对于这个问题的任何帮助将不胜感激。

我正在使用以下代码,只要页面的访问令牌有效,它似乎就可以正常工作,但我需要使某些内容永久化,以便我可以在硬编码的 php 代码中添加所有信息,并且它适用于某些人至少几周而不更改 api 密钥或令牌

$appid = 'code';
$appsecret = 'code';
$wall= $pageId = 'code';

$token='page token';

$facebook = new Facebook(array('appId'  => $appid, 'secret' => $appsecret, 'cookie' => true));

$params=array( 'message' => $msg,'name' => $title, 'caption' => $title, 'link' =>$uri,'description' => $desc, 'picture' => $pic, 'access_token' => $token,'actions' => json_encode(array('name' => $action_name,'link' => $action_link)) );

$result = $facebook->api($wall.'/feed/','post',$params);

如果我从图形 api 调试页面制作令牌,那么它工作正常,但一段时间后我收到消息“OAuthException:必须使用活动访问令牌来查询有关当前用户的信息。”

我真的很想为它找到可靠的东西。

谢谢

【问题讨论】:

    标签: facebook post status facebook-page


    【解决方案1】:

    您可以编写一个后端脚本(可能是使用 FB PHP-SDK 的 cron 作业)以特殊用户身份运行并进行所需的 FB api 调用。为此,您需要使用long-lived access token,它需要每 60 天更新一次。您也可以使用App Access Token 尝试您的 FB api 调用,它不会过期但也不支持所有 FB 发布和其他操作。

    【讨论】:

    • 您好,您能帮我一下吗?我正在尝试,但显然我在这里遗漏了一些东西。我在下面使用此代码,但在尝试扩展令牌时,我收到 190 和错误的身份验证令牌消息。请检查下面的代码 $facebook = new Facebook(array( 'appId' => $appid, 'secret' => $appsecret, 'cookie' => true, )); $user = $facebook->getUser(); // 联系 Facebook 并获取令牌 if ($user) { // 您已登录,我们将获取用户访问令牌以在墙上发布 try { echo $access_token= $facebook->getAccessToken();跨度>
    • 嗨@donn lee 感谢您的建议。我能够做到,但我想我不小心做了令牌扩展部分,但我想知道为什么我的令牌代码在 facebook 调试工具中显示过期 = 从不状态。目前该网站运行良好,应用程序正在代表页面发布在页面上,所以一切看起来都不错,但是到期状态 = 从不可以,感谢扩展令牌部分。
    • 您可能为您的应用禁用了 offline_access 迁移。在“高级”部分查看您应用的迁移设置。 12 月 5 日之后,所有人都将停用离线访问令牌。
    【解决方案2】:

    要在某人的墙上发帖(或对打开的图表执行任何操作),您必须通过 facebook 作为他们图表中的某个人或他们已授予权限的应用程序进行身份验证。

    您应该查看可以使用 oauth 范围属性设置的权限...

    https://developers.facebook.com/docs/reference/dialogs/oauth/

    在我看来,如果您想写信给他们的朋友墙以及您通过身份验证的用户,他们似乎需要授予您的应用程序 publish_stream。

    https://developers.facebook.com/docs/reference/login/extended-permissions/

    【讨论】:

    • 不,我只需要一个用户的这个应用程序。这是一个网站。每当有什么发布就可以了。我希望它也发布在 facebook 页面上,因为文章发布将在管理端,并且在整个过程中他们没有要求登录 facebook 的地方。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多