這將成爲初學者的一個問題,就像你想要遇到的開始。使用Facebook的JavaScript SDK
我已經做了以前的程序與Facebook,但不能直接作爲網絡編程 - 所以,我知道我周圍的圖形API的方式和東西一般是如何工作的,但我沒有任何經驗做網絡編程和我米略輸於如何從Facebook'sdocumentation得到了具有工作網頁,讓我登錄(我們的目標是隻爲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中,不會顯示任何內容(除非我在</body>
之前鍵入了一些hello世界文本)。我已經研究瞭如何讓事情運行的JavaScript/HTML教程,但無濟於事。
我知道它在先前鏈接的先決條件部分中說過(我會再次鏈接,但我在這裏太新了,而且stackoverflow不會讓我)「你需要某個地方讓你的主機在線HTML文件。「它也引用了Heroku,但是我可以找到的任何資源都需要我進行應用程序託管,而我不明白爲什麼(這只是爲了測試此功能),我需要首先在線託管它,而不僅僅是將它放到我的瀏覽器中(或從C/C++調用ShellExecute
以使其運行)。
[編輯:]感謝您的幫助迄今爲止大家,我只是希望我沒有佔用時間錯別字到目前爲止,而不是讓你樂於助人的人來找到問題的根源的。
這是您複製確切的代碼?看起來你錯過了testAPI()函數的右括號'}'。 –
謝謝!編輯並修復。但我仍然有同樣的問題。空白頁仍然存在。所有的 – counterfeitname
首先,檢查你的彈出窗口攔截器設置 - 因爲您呼叫的FB.login(它用這樣的方式試圖打開一個彈出),無需任何用戶交互,很可能受阻得到大多數瀏覽器的默認攔截器配置。 FB.login打開彈出窗口應該在一般情況下只用於明確的用戶交互,f.e點擊某個按鈕。順便說一下,這是正確的文檔頁面上。 – CBroe