Angular-Facebook登录会打开一个窗口,说:“对不起,出了点问题。我们正在努力尽快修复此问题。”

时间:2019-01-03 08:32:35

标签: angular facebook facebook-login

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));
}

我仍然需要窗口来请求权限。

1 个答案:

答案 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) =>