【问题标题】:Posting to my facebook page and twitter timeline offline离线发布到我的 Facebook 页面和 Twitter 时间线
【发布时间】:2013-11-21 09:00:50
【问题描述】:

我有一个应用程序,它允许用户上传他们的照片,使用我的应用程序进行一些图像处理,然后发布它,使这些图像对公众可见。

我现在想在任何用户发布他们的照片后立即将图片发布到我的 Facebook 页面的时间线和 Twitter。

是否有可能做到这一点? 是否有可能获得永久访问令牌而不必通过 OAuth。

我在 SO 上环顾四周,但找不到与我正在寻找的答案相近的答案。

提前致谢。

【问题讨论】:

  • 是的,有可能,但您必须使用您希望在 facebook 上的该页面上发布帖子的用户的访问令牌
  • 谢谢 :) 你能给我指出一些链接/教程,我可以在其中阅读更多相关信息吗?抱歉,我是新手。

标签: facebook facebook-graph-api twitter facebook-php-sdk twitter-oauth


【解决方案1】:

脸书:

  1. 它使用OAuth2,所以首先你必须得到一个访问令牌,文档可以参考here
  2. 为了使用访问令牌进行 api 调用,GETPOST 请求将被发出,如 here 解释的那样

推特:

  1. 它使用 OAuth 1,因此将获得 Access token 和 token secret ,如here 所述
  2. api调用可以参考here

注意:根据您使用的语言,您可以找到相关的 sdk。

【讨论】:

  • 所以我必须通过 OAuth。而且这些令牌是短暂的。因此,当令牌过期时,我的应用程序无法将任何内容发布到我的 Facebook 页面或 Twitter 时间线。不是吗?我是否必须手动更新此访问令牌?
  • 在 twitter 中令牌不会过期,在 facebook 中它将在 60 天左右后过期,当您检索访问令牌时,您还将获得一个刷新令牌,您可以使用它来更新轻松访问您的访问令牌
  • 是的,你必须只使用 oauth,没有其他选择
【解决方案2】:

免责声明:您说的是用户的粉丝专页而不是用户的墙对吧?

要添加到 Jhanvi 的答案,这里是 facebook 获取永久页面访问令牌的基本步骤:

  1. 让用户允许具有适当权限的应用
  2. 检索用户访问令牌
  3. 为扩展用户访问令牌更改用户访问令牌

这是我执行此步骤的方法(您也可以使用 curl)

$token_url = "https://graph.facebook.com/oauth/access_token?client_id=YOUR_APP_ID&client_secret=YOUT_APP_SECRET&grant_type=fb_exchange_token&fb_exchange_token=OLD_TOKEN";
$accessToken = @file_get_contents($token_url);

然后

  1. 使用用户扩展访问令牌查询 /me/accounts 以获取页面
  2. 为扩展访问令牌更改页面访问令牌(与上述代码相同)

您会获得一个永久访问令牌,该令牌仅在用户更改密码或禁止该应用时才会过期。

根据文档,最后一步不应该是必需的

【讨论】:

  • 嗨,汤姆,是的,我说的是粉丝页面,而不是他的墙。具体来说,用户有一个业务页面,他是该页面的管理员。我想在页面的墙上发帖。
  • 那么使用上面的方法为你的页面获取一个扩展令牌并存储页面的 id 和扩展令牌。然后,您所要做的就是在用户发布图片时检索它们并在您的 API 调用中使用它们。 php sdk 有很好的文档记录。
猜你喜欢
  • 2014-07-26
  • 2012-09-06
  • 2012-04-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-02
  • 1970-01-01
相关资源
最近更新 更多