【发布时间】:2015-08-30 04:29:45
【问题描述】:
我正在使用 Emberjs、Ember Simple Auth 和 Torii(用于 facebook-oauth2 提供程序)。
我能够按照本教程 http://www.programwitherik.com/ember-simple-auth-torii-example-application/ 创建 Facebook 登录和注销
出于学习目的,我正在尝试使用 Ember Simple Auth 获取我的 Facebook 好友列表,而 Tori 不确定如何在 Emberjs 中设置请求。我在网上找不到任何指导..
首先我创建了一个自定义 REST 适配器:
// adapters/friendlists.js
import DS from 'ember-data';
export default DS.RESTAdapter.extend({
namespace: 'v2.3/me',
host: 'https://graph.facebook.com',
headers: {
"apiKey": '193080234948021' //api key is manually added. How can I get the api key from Ember Simple Auth/Torii session?
}
});
下一个模型:
// models/friendlists.js
import DS from 'ember-data';
export default DS.Model.extend({
name: DS.attr(),
list_type: DS.attr()
});
...和路线:
// routes/friendlists.js
import Ember from 'ember';
import AuthenticatedRouteMixin from 'simple-auth/mixins/authenticated-route-mixin';
export default Ember.Route.extend(AuthenticatedRouteMixin, {
model: function(params) {
return this.store.find('friendlists');
}
});
当我转到 http://localhost:4200/friendlists 时,我会在控制台中看到以下内容:
[仅报告] 拒绝连接到 'https://graph.facebook.com/v2.3/me/friendlists' 因为它违反了 以下内容安全策略指令:“connect-src 'self' ws://localhost:35729 ws://0.0.0.0:35729 http://0.0.0.0:4200/csp-report"。
XMLHttpRequest 无法加载 https://graph.facebook.com/v2.3/me/friendlists。 HTTP 状态无效 代码 400
访问http请求时:
{ “错误”:{ "message": "必须使用活动访问令牌来查询当前用户的信息。", “类型”:“OAuthException”, “代码”:2500 }
如何在 Ember 上设置访问令牌?
【问题讨论】:
-
错误消息意味着您需要使用访问令牌,您可以阅读 facebook 文档中的相关信息。话虽如此,您确定要访问“朋友列表”而不是“朋友”吗?这是两件不同的事情。
-
我正在尝试获取好友列表。当我通过 facebook 登录我的应用程序时,我得到了一个访问令牌,但我找不到任何关于 Ember Simple Auth 或 Torii 如何访问该令牌并在我的获取请求中使用它的文档。
-
不过,我很确定您不想获得好友列表,而是要获得朋友。但无论如何,你不应该直接从博客文章开始,从这里开始阅读:developers.facebook.com/docs
-
我只是为了测试目的而获取 firendlists,但只要我知道如何正确地将数据从 Facebook API 返回到 ember 框架,任何事情都可以工作。
标签: facebook-graph-api ember.js ember-data