问题标签 [facebook-access-token]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3114 浏览

ruby-on-rails - 如何使用 ruby​​ 获取 facebook 的 oauth 访问令牌

我试图在 ruby​​ 中以编程方式获取 facebook 的 oauth 访问令牌。

我的代码如下:

当我尝试运行上述 ruby​​ 代码时,出现以下异常

非常感谢任何帮助,因为我花了一天多的时间试图解决这个问题。

0 投票
3 回答
562 浏览

facebook - Facebook-offline_access 替代方案:从应用程序创建的令牌将持续多长时间,以便我可以将页面的提要拉入我的网站

主要问题:(因为offline_access 权限)正在弃用;通过使用应用程序的 ID 和密码点击以下 url 创建的访问令牌将持续多长时间? https://graph.facebook.com/oauth/access_token?grant_type=client_credentials&client_id=XXXX&client_secret=YYYY 最后一个?这似乎是一个简单的问题,但我无法在这里或 developer.facebook.com 上找到明确的答案

第二个问题我想将我的 facebook 页面的提要拉入我的网站(通过 jquery 插件或滚动我自己的),但两者都使用类似的东西:

基本上,我使用的是通过我制作的 fb 应用程序创建的 appID 和秘密,这样我就可以生成访问令牌并将我的提要拉入我的网站(见第一个问题),而不要求用户使用 fb 进行身份验证。有没有比进行上述调用并创建应用程序来获取令牌更好的方法?(我必须使用的Web服务器不能使用php)

注意:在这篇文章的评论中,它说“离线访问现已被弃用,但您可以将访问令牌延长至 60 天。” 但我还没有找到任何文档来支持这一点,也没有找到让我设置那个时间的方法;我不想上线想知道我的令牌是否会在某个未知时间过期 Facebook 页面访问令牌 - 这些会过期吗?

0 投票
2 回答
3867 浏览

ios - 当您在 iOS 应用程序和服务器中都使用令牌时如何处理 Facebook 弃用的离线访问权限

Facebook将在 2012 年 5 月弃用offline_access许可,并且文档没有为我们提供有关如何处理它的足够信息。

我们有一个 iOS 应用程序和相应的服务,为其提供支持并与 Facebook 深度集成,以在应用程序内利用用户的朋友列表(因此,如果您的 FB 朋友也在使用该应用程序,您可以更轻松地建立联系)。这就像所有社交应用程序的工作方式一样,所以这里没什么特别的。

客户

我们的应用程序使用Facebook iOS SDK来允许用户登录,这是我们目前要求的offline_access。令牌保留在我们的 iOS 应用程序中,但也会发送到保存它的服务器。客户端代表用户向用户的新闻源发布更新(我们也请求publish_stream许可)。

服务器

我们的服务器会定期检查用户的 FB 好友是否正在使用我们的应用程序。下次用户登录时,我们会以某种方式公开内容和关系以宣传该用户的朋友。服务器还代表用户定期连接到图 API 并获取用户的当前好友列表。这样我们就可以解释用户关系的变化,并将它们反映在我们的应用程序中。当用户当前未使用该应用程序时,我们会执行此操作,以便他们在下次使用该应用程序时获得最佳体验。为了实现这一点,我们的 iOS 应用程序将访问令牌发送到它使用的服务器以及我们请求的原因offline_access

注意:如果用户明确退出我们的应用程序,我们会从客户端和服务器中删除访问令牌。

问题

既然不再有我们可以使用的永久访问令牌,我正在尝试找出在利用 facebook 处理和扩展访问令牌的新预期方式的同时仍然启用我们的场景的最佳实践。不幸的是,文档并不完全有帮助。

问题

A.当您通过最新的 Facebook iOS SDK 进行身份验证时,您获得的访问令牌的默认生命周期是多少?这份文件说,一个扩展的令牌请求会给你一个持续 60 天的令牌。另一个文档讨论了第一个访问令牌请求并提到了不同的有效性,但不清楚它是否讨论了具体的有效性时间:

(重点是我的)

当您从 Facebook 获得访问令牌时,它将立即生效,并可在 Facebook 定义的一段时间内用于对 API 的请求。这段时间过去后,访问令牌被视为已过期,用户将需要再次进行身份验证,以便您的应用程序获得新的访问令牌。给定访问令牌的有效期取决于它的生成方式。

还有一些事件可能导致访问令牌在其预期到期时间之前变得无效。此类事件包括用户更改密码、应用程序刷新其 App Secret。处理不同的访问令牌到期时间,以及处理访问令牌在其预期到期时间之前失效的情况对于构建强大的社交体验至关重要。

B.对于客户来说,既然访问令牌不一定是长期存在的,那么我们的正确方法是:

让我们通过 FB 使用登录,然后检测访问令牌何时过期。如果是,那么调用FB iOS SDK重新认证/重新授权?(这应该只会触发用户跳出到 FB iOS 应用程序,并且在大多数情况下会立即使用新的访问令牌返回我们的应用程序)。

C.根据我发现的这篇博文,您只能扩展一次访问令牌:

我可以将我的 60 天访问令牌换成新的 60 天访问令牌吗?

不,对不起,你不能。您只能将有效(即当前)用户访问令牌交换为扩展令牌。您不能扩展已扩展的访问令牌。

在客户端,我可以通过提示重新认证/重新授权来处理这个问题,正如我在问题 B 中提到的那样。但是,这在我们的服务器上不起作用。我们当然可以让服务器将它更新一次到 60 天,但是在第 61 天会发生什么?服务器只是停止能够同步朋友的列表?

D.每次应用程序启动或从睡眠状态恢复时检查 FB 访问令牌的有效性似乎是有意义的。我们的 iOS 应用程序检查这一点的最佳方法是什么?是否有推荐的端点来调用以验证令牌?我们是否应该调用https://graph.facebook.com/me传递访问令牌并检查响应?

注意:我们当然可以记录expires我们获得初始扩展令牌的时间,但这并不可靠,因为用户可以随时撤销我们应用程序的权限,这使得expires时间成为不可靠的有效性数据点

0 投票
2 回答
8027 浏览

c# - C#:获取用户访问令牌

我正在用 C# 开发一个桌面应用程序。

访问https://www.facebook.com/dialog/oauth?client_id=123后,用户登录并将用户访问令牌附加到重定向 uri。没问题,当登录页面显示在我的表单中的 webbrowser 控件中时,我可以从 url 中提取令牌。

但这不是我想要获得令牌的方式。我的问题是,有没有办法通过 Graph API 调用获取新创建的令牌?

因为我想在用户的标准浏览器中而不是在这个嵌入式网络浏览器中显示登录页面。我为获取用户访问令牌所做的所有努力都导致获取了应用程序访问令牌,在这种情况下这是无用的。

任何提示表示赞赏。

0 投票
1 回答
4143 浏览

c# - 如何获取 Facebook 访问令牌以将应用程序发布到公司墙上?

所以这就是我想要做的。我已经创建了我的 Facebook 应用程序,并且能够使用 Graph API 资源管理器在右上角指定应用程序。

一些更详细的信息,我正在使用 C# 对我们内部应用程序的功能进行编码,以使其正常工作。

之后,我转到 url 部分并输入以下地址。

https://graph.facebook.com/MyCompanyPage

然后点击提交。它将在资源管理器中导航并显示该页面下方的信息。那么为了获得我的应用程序的access_token,我上去点击获取访问令牌->指定我的扩展权限->然后再次点击获取访问令牌。一切都很好,我可以使用我们的 Facebook 应用程序成功发布到 Facebook。

问题是 access_token 即将过期,我正在使用手动检索方法来获取访问令牌。

这是我尝试使用 GIT 中的一个示例进行的操作。

现在,当我尝试为自己获取应用程序的访问令牌时,这对我有用。但是,我需要该行为以与 Graph API Explorer 相同的方式运行。我需要它像 Explorer 一样工作的原因是因为我想在实际的公司页面下使用 Facebook 应用程序发布帖子,所以看起来公司页面实际上是在发布 Facebook 帖子而不是用户。就像我上面所说的,我可以通过 Graph API Explorer 成功地做到这一点,但在 C# 中没有成功做到这一点。

0 投票
1 回答
5413 浏览

php - “必须使用活动访问令牌来查询有关当前用户的信息”facebook 错误

我正在 Facebook 上开发应用程序,但遇到了一些问题。基本上,在用户赢得游戏后,我会要求他在墙上贴出他的成功(比如“看!我赢了游戏!也以游戏的名字玩这个游戏!” -> 这是罗马尼亚语位的翻译以下代码)。我正在使用这段代码:

if ($raspuns == "Yer Blues") {

echo("Bravo!Ai castigat jocul!Intoarce-te saptamana viitoare cand se va posta un alt set de melodii!");

$access_token = $facebook->getAccessToken();

$wall_post = array('message' => 'Am castigat jocul Ghiceste Melodia! Joaca si tu cu Revista Floyd!',

$result = $facebook->api('/me/feed/', 'post', $wall_post);

}

但是每当用户输入正确答案时,我都会收到此消息:

致命错误:未捕获的 OAuthException:必须使用活动访问令牌来查询有关当前用户的信息。在第 1106 行抛出 /home/pasarel/public_html/face/src/base_facebook.php

这是为什么?我提到我同时拥有用户和应用程序访问令牌,那怎么了?我在某处读到它可能缺少“会话”部分(此处:http ://benbiddington.wordpress.com/2010/04/23/facebook-graph-api-getting-access-tokens/ )。这可能是答案吗?我如何解决它?

0 投票
3 回答
6945 浏览

oauth-2.0 - 跨应用共享 Facebook 访问令牌

我想使用 facebook api 向第三方提供服务。我们可以共享访问令牌吗?如果第三方向我的服务提供用户的访问令牌,即使我的 app_id 和密码与请求它的应用程序不匹配,我是否可以访问该用户数据?

我是否应该让用户在我的网站上通过单独的 oauth 流程,即使他们已经为其他第三方完成了它?

谢谢。

-ken

0 投票
1 回答
405 浏览

javascript - 使用 javascript 的新离线访问令牌实现 Facebook 应用程序

我一直在使用 JavaScript SDK 使用 Facebook OAuth 2.0。我看到 Facebook 最近更改了“无限”过期时间访问令牌功能,现在获得了一个用于离线访问的访问令牌,最长有效期为 60 天。

我尝试了以下代码:

在我的回复中:response.authResponse,我收到一个访问令牌和一个值:expiresIn,它或多或少在 6000 左右。我不明白这个值的含义。如果我将它除以 3600,我会说它给了我大约 2 小时的有效期,这意味着这不是具有无限过期时间的访问令牌。有没有办法可以请求具有更长有效期的访问令牌?请让我知道我做错了什么。

0 投票
2 回答
1345 浏览

facebook - 在没有浏览器的情况下获取访问令牌

为了给你一些背景信息,我目前正在开发一个应用程序的后端,该应用程序在一个非常小的 32 字符 LCD 屏幕上记录 Facebook 通知的数量,连接到Arduino。为此,我打开了一个 Facebook 应用程序,并在我的服务器上有一个页面,用于重定向用户以获得授权和权限,然后继续获取访问令牌。在我的浏览器中,所有重定向都运行良好,我最终得到了通知的 JSON 表示。但是,我希望它能够自主工作 - 当我尝试使用 Ruby 获取页面、解析结果并将它们写入串行端口时,结果是用于将用户重定向到 Facebook 对话框的 javascript,而不是通知。返回 IE 客户端代码,而不是执行(不足为奇)。

我的问题是是否无论如何都可以获得授权,并在不重定向到另一个页面或在客户端运行代码的情况下请求访问令牌?

0 投票
1 回答
1358 浏览

facebook - 如何生成过期的 Facebook 访问令牌进行测试?

我们正在尝试更新我们的应用程序和服务器以处理即将到来的Facebook offline_access deprecation。但是,我们在测试它时遇到了麻烦,因为我们找不到生成过期访问令牌的简单方法。

我们尝试使用Graph API Tool创建访问令牌,但更改其中的字符。但是,这只会导致无效令牌而不是有效的过期令牌。

我很震惊 Facebook 没有提供一种方法来促进测试。所以我只是假设我错过了一些直接的方法来做到这一点,所以会感谢某人的指点。