[英]Using the Facebook JavaScript SDK
這將是一個初學者的問題,因為你想要遇到它。
我之前已經完成了Facebook的編程,但沒有直接作為網絡編程 - 所以,我知道我的方式圍繞Graph API以及一般的工作方式,但我沒有任何網絡編程經驗,我有點迷失關於如何從Facebook的 文檔到擁有一個允許我登錄的工作網頁(目標是盡可能簡單地使用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 world文本)。 我已經研究了如何讓事情運行的JavaScript / HTML教程,但無濟於事。
我知道它在上一個鏈接的先決條件部分中說(我再次鏈接它但我在這里太新了,stackoverflow不會讓我)“你需要一個讓你在線托管HTML文件的地方。 “ 它也引用了Heroku,但是我能找到的任何資源都會把我帶到app-hosting,我不明白為什么(這只是為了測試這個功能)我需要首先在線托管它而不僅僅是將它放入我的瀏覽器(或從C / C ++調用ShellExecute
以使其運行)。
[編輯:]感謝你們所有人的幫助到目前為止所有人,我只是希望到目前為止我沒有花時間處理錯別字,而不是讓所有有幫助的人找到問題的根源。
頁面空白的原因是因為沒有顯示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') {
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.