Facebook API获取公开个人资料墙帖

时间:2013-09-02 16:05:27

标签: c# facebook facebook-graph-api

我正在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)错误请求。错误。

2 个答案:

答案 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]