我无法理解FB如何确定是否需要用户令牌或access_token。 无论如何我都没有使用Facebook进行身份验证,而且我真的不想这样做。
我正在尝试将我们的Facebook群组信息显示给我们的论坛。
根据Graph API,/ group-id / feed需要以下内容:
/ group-id / events仅需要:
文字略有偏差,但我希望能够传达与用户访问令牌相同的想法"。
根据FB,代替用户访问令牌,可以组合应用程序的app-id和app-secret来模拟access_token。
为我的小组的Feed执行此操作时,效果很好。 在为事件执行此操作时,我收到错误消息:
为什么app-id | app-secret access_token无效?我真的不想担心任何FB身份验证;我只想在我们的网站上列出我们的活动。我做错了什么或错过了处理它的正确方法吗?
$(function () {
var location = document.URL;
var ShowGroup = false;
var group_id = null;
if (location.indexOf("chattanooga-lodge") != -1) {
group_id = "";
ShowGroup = true;
}
if (ShowGroup) {
$("#FBfeedContainer").show();
// Initialize Facebook JavaScript API
window.fbAsyncInit = function () {
FB.init({
appId: 'app-id',
xfbml: true,
version: 'v2.0'
});
//FB News Posts
FB.api(
"/" + group_id + "/feed",
{ access_token: "app-id|app-secret" },
function (response) {
debugger;
if (response && !response.error) {
$.each(response.data, function (index, data) {
if (index < 3) {
$("#FBfeed").append(data.id);
}
});
}
}
);
//FB Events
FB.api(
"/" + group_id + "/events",
{ access_token: "app-id|app-secret" },
function (response) {
debugger;
if (response && !response.error) {
$.each(response.data, function (index, data) {
if (index < 3) {
$("#FBfeed").append(data.id);
}
});
}
}
);
};
(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'));
}
});
答案 0 :(得分:1)
如果不使用任何用户身份验证,您将无法获取群组的活动。正如您已经指出的那样,对于group-id / feed(需要用户访问令牌或app访问令牌)和group-id / events(需要用户访问令牌)端点提到的权限。由于您通过组合app id和app secret创建的App访问令牌,您可以获取Feed数据。
Facebok API中的每个数据点都受到权限的严格保护。其中一些是公开的,另一些是访问不同类型的访问令牌,具体取决于Facebook发现应该可以访问的内容。您可以在https://developers.facebook.com/docs/facebook-login/access-tokens
了解更多相关信息为了在网页上展示您的论坛活动,您可能需要进行解决。您必须创建自己的访问令牌并对其进行硬编码。显然你不应该在Javascript中这样做,而是用户PHP API
答案 1 :(得分:0)
我认为不需要用户登录Facebook的最简单方法是
以下代码进入您的服务器
<?php
# facebookEvents.php
$FacebookID = '';
$APP_ID='';
$APP_SECRET='';
header('Content-Type: application/json');
print_r(file_get_contents("https://graph.facebook.com/$FacebookID/events?access_token=$APP_ID|$APP_SECRET"));
?>
App Dashboard提供的App ID和App Secret