将数据从 facebook SDK 公开到 VueJS
Exposing data from facebook SDK to VueJS
我正在尝试在使用 VueJS2.0 的网站中使用 facebook SDK 功能实现简单的登录。
我在处理这个问题的组件中的代码基本上取自 FB SDK Quickstart:
onLoginPress() {
FB.getLoginStatus(function(response) {
if (response.status === 'connected') {
console.log('Logged in.');
} else {
FB.login(function(response) {
if (response.authResponse) {
console.log('Welcome! Fetching your information.... ');
FB.api('/me', function(response) {
console.log('Good to see you, ' + response.name + '.');
});
} else {
console.log('User cancelled login or did not fully authorize.');
}
});
}
});
现在我想知道 - 我应该如何将 FB api 的响应提供回 VueJS?我看到那些函数调用中的 this
指向 Window,但我无权访问 Vue。
Vue 使用以下代码初始化:
/* eslint-disable no-new */
new Vue({
el: '#app',
render: h => h(App)
})
这是 window 因为 FB 执行的功能是在全局上下文中完成的。
要解决这个问题,请在第一个 FB 之前的行中为此分配一个变量,这将是您对 Vue 实例的引用。
let vm = this:
FB......
然后你可以通过 vm.someMethod()
从 Vue 进行正常的调度等
我正在尝试在使用 VueJS2.0 的网站中使用 facebook SDK 功能实现简单的登录。
我在处理这个问题的组件中的代码基本上取自 FB SDK Quickstart:
onLoginPress() {
FB.getLoginStatus(function(response) {
if (response.status === 'connected') {
console.log('Logged in.');
} else {
FB.login(function(response) {
if (response.authResponse) {
console.log('Welcome! Fetching your information.... ');
FB.api('/me', function(response) {
console.log('Good to see you, ' + response.name + '.');
});
} else {
console.log('User cancelled login or did not fully authorize.');
}
});
}
});
现在我想知道 - 我应该如何将 FB api 的响应提供回 VueJS?我看到那些函数调用中的 this
指向 Window,但我无权访问 Vue。
Vue 使用以下代码初始化:
/* eslint-disable no-new */
new Vue({
el: '#app',
render: h => h(App)
})
这是 window 因为 FB 执行的功能是在全局上下文中完成的。
要解决这个问题,请在第一个 FB 之前的行中为此分配一个变量,这将是您对 Vue 实例的引用。
let vm = this:
FB......
然后你可以通过 vm.someMethod()