我正在为VueJS项目开发FB.login()功能,我希望通过作用域获得一些权限,但是,当我再次尝试登录后,它会不断询问我这种权限,好像我从未接受了他们,或者是要求。
我尝试通过参数设置它们,也将属性写为camelCase,到目前为止它们都没有起作用。
我的主要功能位于helper.js文件中:
export function loadFbSdk(appId, version, locale) {
return new Promise(resolve => {
window.fbAsyncInit = function () {
FB.init({
appId,
xfbml: true,
version,
autoLogAppEvents: true
});
FB.AppEvents.logPageView();
resolve('SDK Loaded!');
};
(function (d, s, id) {
const fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) { return; }
const js = d.createElement(s); js.id = id;
js.src = 'https://connect.facebook.net/' + locale + '/sdk.js';
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
});
}
export function getFbLoginStatus() {
return new Promise(resolve => {
window.FB.getLoginStatus(responseStatus => {
resolve(responseStatus);
});
});
}
export function fbLogin() {
const fbLoginOptions = {
scope: 'pages_messaging,pages_messaging_subscriptions,email,pages_show_list,manage_pages',
return_scopes: true,
enable_profile_selector: true
};
return new Promise(resolve => {
window.FB.login(response => resolve(response), fbLoginOptions);
});
}
export function fbLogout() {
return new Promise(resolve => {
window.FB.logout(response => resolve(response));
});
}
我的login.vue是:
<template>
<div>
<v-card>
<v-card-actions class="vertical-buttons" row wrap align-center>
<v-flex xs12 sm6 md6 lg4 mb-2 class="Aligner">
<v-btn color="#4267B2" class="Aligner-item">
<FacebookLogin
appId="585810894861537"
locale="es_LA"
loginLabel="Iniciar sesión con Facebook"
logoutLabel="Cerrar Sesión"
:isUpperCase="false"
@login="onSignInSuccess"
@logout="onLogout"
@sdk-loaded="sdkLoaded"
:loginOptions="fbSignInParams"
></FacebookLogin>
</v-btn>
</v-flex>
</v-flex>
</v-card-actions>
</v-card>
</div>
</template>
<script>
import FacebookLogin from "../facebook-addons/index.js";
import store from "@/store/store";
export default {
name: "Login",
components: {
FacebookLogin
},
data() {
return {
FB: undefined,
isConnected: false,
fbSignInParams: {
scope:
"email, manage_pages, read_page_mailboxes, pages_messaging, pages_messaging_subscriptions",
returnScopes: true
}
};
},
methods: {
onSignInSuccess(response) {
store.dispatch("yeekoLogin", response);
},
onSignInError(error) {},
sdkLoaded(payload) {
console.log(payload);
this.isConnected = payload.isConnected;
store.commit("setFB", payload.FB);
if (this.isConnected) {
this.onSignInSuccess();
}
},
onLogout() {
this.isConnected = false;
}
}
};
</script>
我希望登录名在每次单击时都不会要求获得相同的授予权限,而只是使用我的后端API。