【问题标题】:Get user permissions and post to wall from Desktop app?从桌面应用程序获取用户权限并发布到墙上?
【发布时间】:2012-09-20 16:31:52
【问题描述】:

我正在尝试设计一个 facebook 应用程序,用户会:

1-通过浏览器登录FB
2- 接受应用的权限(offline_access*、publish_stream 等)

然后我们将生成一个条形码/rfid 卡,其中主要代码将是他/她的用户名/ID。当用户将他的卡放在读卡器下时,“系统”应该启动一些东西并将一些东西发布到他的墙/时间轴上

所以:

我想我必须开发一个单独的桌面应用程序来接收来自阅读器的代码,然后使用我的应用程序 url 和一些 app_data 启动浏览器?

有没有一种方法可以在卡片通过读卡器后,通过使用一些令牌或类似的东西(知道用户之前接受过权限)自动“登录”用户到我的 FB 应用程序?

我正在抛出想法,希望有人可以分享其他人,这样我就可以清楚这一点

谢谢

【问题讨论】:

  • "启用迁移设置后,桌面应用程序将自动返回具有较长过期时间的用户 access_tokens。但是,如果没有用户,则无法获得长期用户 access_token再次登录您的应用。”
  • 如果您想了解更多信息,请查看此developers.facebook.com/roadmap/offline-access-removal
  • 我假设您已经获得了用户 ID。如果你不告诉我,我也可以帮忙。在获取用户 ID 后,您可以使用带有应用程序访问令牌的图形 api 代表用户发布到 facebook。应用程序访问令牌不同于用户的活动访问令牌。示例图形 api url 类似于“graph.facebook.com/YOUR_USER_ID/…”。这可以通过 HTTP GET 方法发送。详细信息可见developers.facebook.com/docs/reference/api
  • @bhdrkn 是的,我用过 id。在用户批准 publish_stream 权限后我得到它。那么,您说我可以在不使用图形 api 和应用程序访问令牌登录的情况下发布到用户墙?你有一个例子吗?如果是这样,我会给你 +50 代表。
  • @Enriue 很抱歉误导你。为了发布消息,您必须使用 http POST 发出请求。我有一个例子,希望对你有帮助。

标签: php barcode offline facebook-wall rfid


【解决方案1】:

使用扩展访问令牌(长期访问令牌)

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

//Store or update this in your database when user accesses your application
$extended_access_token = $facebook->getExtendedAccessToken();

扩展访问令牌有效期为 60 天。

【讨论】:

  • 嗨,Zany。我试过这种方式但没有用(我有最新的sdk等)。我只能使用以下代码获取扩展访问令牌:pastebin.com/wNsQFmXf
  • 现在有了扩展访问令牌,你能完成你想要的吗?
  • 是的! 2 天后,从带有 QRCode 的外部页面尝试,并且成功了!现在主要关心的是构建一些替代品,以防万一它停止工作lol
  • 不幸的是,使用扩展访问令牌是进行离线访问的唯一已知方法。如果“它停止工作”是指您的应用程序由于 Facebook 的政策而被禁止,这是您必须接受的风险,别无选择。如果我的回答有用,请帮忙采纳。谢谢;)
【解决方案2】:

我的 PHP 技能不好。但它认为您可以使用 HTTP post 使用此脚本进行发布。

$url = 'https://graph.facebook.com/USER_ID/feed?access_token=APP_ACCESS_TOKEN&message=YOUR_MESSAGE';
$ch = curl_init($url);

$response = curl_exec($ch);
curl_close($ch);

此响应包含一个包含 post_id 的 JSON 对象。

【讨论】:

    【解决方案3】:

    您需要在步骤 1 中获取和存储访问令牌。使用此令牌,您可以代表用户发布。 facebook 帮助页面上详细描述了如何获取令牌。显然没有offline_access。您需要一个有效期较长的令牌https://developers.facebook.com/roadmap/offline-access-removal/

    最后是更糟糕的一点。您想代表用户发帖。如果您打算发布 FIX 内容,我必须警告您 - facebook 将禁止您。他们不允许为用户编造内容。它被视为垃圾邮件。您可以做的是发布一个打开的图表操作。

    【讨论】:

    • 我知道。无论我发布什么,我都会先征求用户许可。我以前用 publish_stream 做过这个,但现在我主要关心的是如何在不登录 FB 的情况下在用户墙上发帖。这个想法是请求许可,然后制作带有用户 ID 的 rfid/qrcode/barcode 卡。当他经过阅读器时 - 在其他电脑上 - 在他的墙上制作了一个墙柱。希望你能理解我的英语。谢谢
    • 你应该把他的观点放在发布固定内容上。如果规模扩大,Facebook 将立即删除您的应用。如果你甚至有限制,你会很幸运。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-23
    • 1970-01-01
    相关资源
    最近更新 更多