我正在c#中制作一个小部件,以便从公开的Facebook页面/个人资料中获取帖子。
我相信每次向api发出请求时都必须获取访问令牌?
我很困惑我需要哪个访问令牌以及要使用的url请求字符串。
这是我目前使用的,但它带回了一个意想不到的关键。 =的access_token 112121212121212 | NxG_8djeufhfywhduEjaeU4J-LH4
(我输入随机字符作为结构的一个例子。)
string response = "https://graph.facebook.com/oauth/access_token?client_id=" + facebook_AppID + "&client_secret=" + facebook_AppSecret + "&grant_type=client_credentials";
string accesstoken = RequestResponse(response);
然后,当我使用该代码从墙上获取帖子时,使用:
string urlGetFeed = "https://graph.facebook.com/thepagename?fields=access_token=" + accesstoken2 + ",posts.fields(message,picture)";
我收到错误:远程服务器返回错误:(400)错误请求。错误。
答案 0 :(得分:3)
对于Facebook页面的供稿,您只需要一个应用程序访问令牌,这很容易获得:
APP-ID | APP-SECRET
例如:
string urlGetFeed = "https://graph.facebook.com/thepagename/feed?access_token=" + [app-id] + "|" + [app-secret];
此外,访问令牌不是“字段”的值,它是一个单独的参数。
答案 1 :(得分:0)
您应该使用的URL是:
https://graph.facebook.com/ [THE_FACEBOOK_ID] / [WHAT_YOU_WANT] =的access_token [YOUR_ACCESS_TOKEN]&安培;极限= [THE_LIMIT]
第一部分访问Facebook图表。 第二部分是您想要的Facebook ID。 第三部分是您想要从您输入的Facebook ID(帖子,订阅源,活动等)中获得的内容。在这里,您必须确保访问令牌具有您想要获得的权限。 第四部分是您获得的访问令牌和限制(如果您没有设置限制,将使用Facebook的默认限制)。
请注意您使用您发布的第一行代码获得的访问令牌。该行将为您提供一个简短的实时访问令牌。您应该在此处交换短期访问令牌:
https://graph.facebook.com/oauth/access_token?client_id= [YUOR_CLIENT_ID]&安培; client_secret = [YOURCLIENT_SECRET]&安培; grant_type = fb_exchange_token&安培; fb_exchange_token = [THE_SHORT_LIVE_ACCESS_TOKEN]
修改强> 你应该做的是包括FB Connect脚本:
<script type='text/javascript' src='http://connect.facebook.net/en_US/all.js#xfbml=1'</script>
然后使用此函数将用户带到FB登录(如果它没有登录),然后到授权页面:
function createAccessToken()
{
FB.init({appId: '[YOUR APP ID]', status: true, cookie: true});
FB.login(function(response)
{
if (response.status == 'connected')
{
if (response.authResponse.accessToken)
{
var token = response.authResponse.accessToken;
}
else
{
alert('You must grant the permissions for this plugin or will not work.');
}
}
else
{
alert('You must be logged in to Facebook to grant permissions.');
}
}, { scope: 'read_stream' }); }
该函数中的token变量将包含短期访问令牌,以便在此处交换长期存在的令牌:
https://graph.facebook.com/oauth/access_token?client_id=[YOUR_CLIENT_ID]&client_secret=[YOURCLIENT_SECRET]&grant_type=fb_exchange_token&fb_exchange_token=[token]
获得该令牌后,请到此处获取您想要的内容:
https://graph.facebook.com/[THE_FACEBOOK_ID]/[WHAT_YOU_WANT]?access_token=[YOUR_ACCESS_TOKEN]&limit=[THE_LIMIT]