4

これは、あなたが遭遇したいように始めて、初心者としての質問になるでしょう.

以前に Facebook でプログラミングを行ったことがありますが、Web プログラミングとして直接行ったことはありません。つまり、Graph API の使い方と一般的な仕組みは知っていますが、Web プログラミングの経験がなく、少し迷っています。Facebook の ドキュメントから、ログインできる Web ページを作成する方法について(目標は、HTML/JavaScript をできるだけ平易なものにすることですが、publish_stream パーミッションを使用して、画像のアップロードやウォールへのリンクなどの投稿を許可することです) )。

以下は、Facebook が私に指示したことを実行するのにこれまでのところ私が持っているコードです (そして、今まで少量の HTML を見たことから追加した少量のコードです):

<!DOCTYPE html>
<html>
<meta http-equiv="Content-type" content="text/html;charset=UTF-8">
<head>
    The title of the document (test text)
</head>
<body>
<div id="fb-root"></div>
<script>
window.fbAsyncInit = function() {
// init the Facebook JavaScript SDK
    FB.init({
        appId       : 'EDITED OUT FOR PRIVACY BUT IS VALID IN MY CODE',
        channelUrl  : null,
        status      : true,
        cookie      : false,
        xfbml       : false
    });

    FB.getLoginStatus(function(response) {
        if (response.status === 'connected') {
            // connected
        } else if (response.status === 'not_authorized') {
            // not authorized
            login();
        } else {
            // not_logged_in
            login();
        }
    });
};

function login() {
    FB.login(function(response) {
        if (response.authResponse) {
            // connected
            testAPI();
        } else {
            // cancelled
        }
    });
}

function testAPI() {
    console.log('Welcome!  Fetching your information... ');
    FB.api('/me', function(response) {
        console.log('Good to see you, ' + response.name + '.');
    });
}

(function(d){
    var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
    if (d.getElementById(id)) {return;}
    js = d.createElement('script'); js.id = id; js.async = true;
    js.src = "//connect.facebook.net/en_US/all.js";
    ref.parentNode.insertBefore(js, ref);
}(document));
</script>
</body>
</html>

これを .html ファイルとして保存して Firefox にドロップすると、何も表示されません (前に hello world テキストを入力しない限り</body>)。物事を実行する方法について JavaScript / HTML チュートリアルを調べましたが、役に立ちませんでした。

以前のリンクの前提条件セクションに、「HTML ファイルをオンラインでホストできる場所が必要になるでしょう。 " Heroku も参照していますが、私が見つけることができるリソースはどれもアプリのホスティングにつながります。理由がわかりません (これはこの機能をテストするためのものです)。ブラウザにドロップします (またはShellExecuteC/C++ から呼び出して実行します)。

[編集:] これまでご協力いただきありがとうございました。問題の根本にたどり着くのに役立つすべての人々を許す代わりに、これまでタイプミスに時間を割かなければよかったのにと思います。

4

1 に答える 1

8

ページが空白の理由は、表示 HTML が表示されることを意図していなかったからです。この例のポイントは、ログインと API 呼び出しを示すことでした。

すでにログインしている場合は、次のように何も表示されません。

FB.getLoginStatus(function(response) {
        if (response.status === 'connected') {
            // connected
                        // <----- no calls
        } else if (response.status === 'not_authorized') {
            // not authorized
            login();
        } else {
            // not_logged_in
            login();
        }
    });
};

したがって、すでにログインしているときに機能しているかどうかを知りたい場合は、ここに testAPI() を配置してみてください

if (response.status === 'connected') {
    // connected
    testAPI(); // <---------------
} else if (response.status === 'not_authorized') {
于 2012-10-25T00:52:05.693 に答える