cou*_*ame 4 javascript facebook facebook-graph-api 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>
Run Code Online (Sandbox Code Playgroud)
当我将其保存为.html文件并将其放入Firefox时,不显示任何内容(除非我之前输入了一些hello world文本</body>).我已经研究了如何让事情运行的JavaScript/HTML教程,但无济于事.
我知道它在上一个链接的先决条件部分中说(我再次链接它但我在这里太新了,stackoverflow不会让我)"你需要一个让你在线托管HTML文件的地方. " 它也引用了Heroku,但是我能找到的任何资源都会把我带到app-hosting,我不明白为什么(这只是为了测试这个功能)我需要首先在线托管它而不仅仅是将它放入我的浏览器(或ShellExecute从C/C++ 调用以使其运行).
[编辑:]感谢你们所有人的帮助到目前为止所有人,我只是希望到目前为止我没有花时间处理错别字,而不是让所有有帮助的人找到问题的根源.
页面空白的原因是因为没有显示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();
}
});
};
Run Code Online (Sandbox Code Playgroud)
因此,如果您想在已经登录时知道它是否正常工作,请尝试在此处放置testAPI()
if (response.status === 'connected') {
// connected
testAPI(); // <---------------
} else if (response.status === 'not_authorized') {
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8584 次 |
| 最近记录: |