2016-12-20 15 views
1

私はangle2のアプリケーションでFacebook Go Live Dialogを使ってFacebookのライブを実装しようとしています。 SDKが動作していて、API呼び出しがOKですが、FB.uiを使用しようとすると、ダイアログの最初の画面が表示され、どこに公開するかを尋ねるためダイアログがうまく表示されません。何が起こるかについてのフィードバックはありません。 (次にクリックすると2番目のステップで別のダイアログが表示されます)Angular2とFacebook SDK FB.uiダイアログが次のボタンをクリックした後に閉じます

これに関するヒントはありますか?

facebooklive.ts

import {Component, OnInit} from '@angular/core'; 
import {FacebookService, FacebookLoginResponse, FacebookInitParams, 
FacebookApiMethod} from 'ng2-facebook-sdk/dist'; 

@Component({ 
... 
template : '<button (click)="FBDialog()">Dialog</button>' 
providers: [...FacebookService] 
}) 
export class Facebook_live implements OnInit { 
constructor(private fb:FacebookService) { 
let fbParams:FacebookInitParams = { 
appId: 'xxxxx', 
xfbml: false, 
version: 'v2.8' 
}; 
this.fb.init(fbParams); 
} 

FBDialog() { 
this.fb.ui(
    { 
     display: 'popup', 
     method: 'live_broadcast', 
     phase: 'create', 
    }, function (response) { 
     console.log(response); 

     if (!response.id) { 
      console.log('dialog canceled'); 
      return; 
     } 
     console.log('stream url:' + response.secure_stream_url); 

     this.fb.ui(
      { 
       display: 'popup', 
       method: 'live_broadcast', 
       phase: 'publish', 
       broadcast_data: response, 
      }, 
      function (response) { 
       console.log("video status: \n" + response.status); 
      }); 
    }); 


} 

編集1:角度-CLIは のWebPACKは現在有効な

ですが、数秒後に表示される言葉: [デフォルト]指定されたパラメータは、任意の署名と一致しません。コールターゲットの

FB SDKでfb.uiを確認したところ、2つのパラメータ(FB.ui(params, function(response)))しか求めていませんでした。

答えて

1
  1. そうでなければ、関数内thisを使用することはできませんES6 arrow function =>を使用してください。

  2. ng2-facebook-sdkreturnsあなたが読めばpromiseREADME.mdあなたはui(params: FacebookUiParams): Promiseが表示されます。

  3. コンストラクタの内部fb.initは、あなたが正しいですが、それはまだ動作しませんthis


import {Component, OnInit} from '@angular/core'; 
import {FacebookService, FacebookLoginResponse, FacebookInitParams, 
    FacebookApiMethod} from 'ng2-facebook-sdk/dist'; 

@Component({ 
    ... 
    template : '<button (click)="FBDialog()">Dialog</button>' 
    providers: [...FacebookService] 
}) 
export class Facebook_live implements OnInit { 


    constructor(private fb:FacebookService) { 
    let fbParams:FacebookInitParams = { 
     appId: 'xxxxx', 
     xfbml: false, 
     version: 'v2.8' 
    }; 
    fb.init(fbParams); 
    } 

    FBDialog() { 
    this.fb.ui(
     { 
     display: 'popup', 
     method: 'live_broadcast', 
     phase: 'create', 
     }) 
     .then(
     (response) => { 
      if (!response.id) { 
      console.log('dialog canceled'); 
      return; 
      } 

      console.log('stream url:' + response.secure_stream_url); 

      this.fb.ui(
      { 
       display: 'popup', 
       method: 'live_broadcast', 
       phase: 'publish', 
       broadcast_data: response, 
      }).then(
      (response) => { 
      console.log("video status: \n" + response.status); 
      }, 
      (error: any) => console.error(error) 
     ); 


     }, 
     (error: any) => console.error(error) 
    ); 
    } 

} 
+0

を必要としません。関数のコールバックがトリガされていないようです.NEXTをクリックすると、ダイアログはフィードバックなしで閉じます。 –

+1

ちょうどng2-facebook-sdk APIを見て、それが約束を返し、私はコードを更新します。 –

+0

@CristianSepulveda私が見つけた問題と訂正されたコードで私の答えを更新しました。 –

関連する問題