2016-09-10 16 views
0

Javascript/Typescriptを使用して単純にFacebookに投稿をしようとしています。Facebook SDKがJavascriptで動作しない

しかし、何も動作していません。

これは私のtypescriptですコードです:

(window as any). //couldn't get code to compile without this... 

window.fbAsyncInit = function() { 
    FB.init({ 
     appId: 'MY API KEY', 
     xfbml: true, 
     version: 'v2.7' 
    }); 
}; 

(function(d, s, id) { 
    var js, fjs = d.getElementsByTagName(s)[0]; 
    if (d.getElementById(id)) {return;} 
    js = d.createElement(s); js.id = id; 
    js.src = "//connect.facebook.net/en_US/sdk.js"; 
    fjs.parentNode.insertBefore(js, fjs); 
}(document, 'script', 'facebook-jssdk')); 

declare var FB:any; 
// Only works after `FB.init` is called 
function myFacebookLogin() { 
    FB.login(function(){ 
     // Note: The call will only work if you accept the permission request 
     FB.api('/me/feed', 'post', {message: 'Hello, world!'}); 
    }, {scope: 'publish_actions'}); 
} 

そして、私のHTML:

<script src="./js/main.js"></script>  

<div id="fb-root"></div> 

<button onclick="myFacebookLogin()">Login with Facebook</button>  
<div id="status"> 
</div>  
</body> 
</div> 
</html> 

私はFacebookのデベロッパーサイトから上記のコードを得ました。

+0

もっと具体的にすることはできますか?何がうまくいかないの? –

+0

私は、サインインするようにポップアップすることが意図されていると信じていますが、ブラウザでhtmlを開くときに何も起こりません。 – user2203633

+0

ブラウザのコンソールを確認しましたか?あなたがする必要があることは、常にそれが最初です。 – luschn

答えて

0

まず、あなたがanywindowをキャストする必要はありません、あなたはこれを行うことができます。

interface Window { 
    fbAsyncInit:() => void; 
} 

次に、この作業をする必要があります:ログイン用として

window.fbAsyncInit = function() { 
    FB.init({ 
     appId: 'MY API KEY', 
     xfbml: true, 
     version: 'v2.7' 
    }); 
}; 

を、the docsによると、あなたはエラーを処理する部分が欠落しています。あなたはFB.loginに渡す機能を使用すると、ステータスを確認することができたとresponseを受け取る:

function myFacebookLogin() { 
    FB.login(function(response) { 
     if (response.authResponse) { 
      FB.api('/me/feed', 'post', { 
       message: 'Hello, world!' 
      }); 
     } else { 
      console.log('User cancelled login or did not fully authorize.'); 
     } 
    }, {scope: 'publish_actions'}); 
} 

ログインに失敗した場合今、あなたは知っていますよ。

+0

「Facebookでログイン」をクリックしても何も表示されません。 – user2203633

+0

コンソールには何もありませんか? –

関連する問題