Facebook从角度组件的登录操作将打开一个窗口,其中显示:“抱歉,出了点问题。 我们正在努力尽快解决此问题。
返回”
昨天工作正常。我尝试调试它,但没有发现任何东西。控制台在“ @ login.component.ts:58”中显示未定义 这是我捕获错误的地方。我从浏览器(chrome)中删除了所有cookie,缓存和历史记录。我保留了该应用程序。我试图在谷歌寻找答案没有找到任何帮助。
export class LoginComponent implements OnInit {
constructor(private FB: FacebookService) {
let initParams: InitParams = {
appId: 'my-app-id',
xfbml: true,
version: 'v3.2'
};
FB.init(initParams);
}
ngOnInit() {
(window as any).fbAsyncInit = function() {
this.FB.init({
appId : 'my-app-id',
cookie : true,
xfbml : true,
version : 'v3.2'
});
this.FB.AppEvents.logPageView();
};
(function(d, s, id) {
let js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) {return; }
js = d.createElement(s); js.id = id;
js.src = "https://connect.facebook.net/en_US/sdk.js";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
}
facebookLogin() {
debugger;
const loginOptions: LoginOptions = {
enable_profile_selector: true,
return_scopes: true,
scope: 'user_birthday,default,email',
auth_type: 'rerequest'
};
this.FB.login(loginOptions)
.then((response: LoginResponse) => {
let array = response.authResponse.grantedScopes.split(',');
if(array.length === 3) {
} else {
alert('You need to provide all the facebook permissions to use the app.');
}
})
.catch((error: any) => console.error(error));
}
我希望“ Continue as myName”窗口继续,但我收到“对不起,出了点问题。 我们正在尽快努力修复这个。窗口
编辑1 下一节不要打开“以我的名字继续”窗口 但它确实返回带有令牌,用户ID等的对象,并且不会引发异常:
facebookLogin() {
this.FB.login()
.then((response: LoginResponse) => console.log(response));
}
我仍然需要窗口来请求权限。
答案 0 :(得分:1)
解决方案: 问题是将.then写下来 所以代替:
class A
{
public string A1
public string A2
}
class B : A
{
public string A3;
public string B1;
}
我应该这样做:
this.FB.login(loginOptions)
.then((response: LoginResponse) =>
loginOptions中的scope属性还必须包含:'public_profile'
this.FB.login(loginOptions).then((response: LoginResponse) =>