1

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

4

2 回答 2

3

对于 Facebook 页面的提要,您只需要一个 App Access Token,它很容易获得:

APP-ID|APP-SECRET

例如:

string urlGetFeed = "https://graph.facebook.com/thepagename/feed?access_token=" + [app-id] + "|" + [app-secret];

此外,访问令牌不是“字段”的值,它是一个单独的参数。

于 2013-09-02T16:36:43.853 回答
0

您应该使用的 URL 是这样的:

https://graph.facebook.com/[THE_FACEBOOK_ID]/[WHAT_YOU_WANT]?access_token=[YOUR_ACCESS_TOKEN]&limit=[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' }); }

该函数内的令牌变量将包含短期访问令牌,以在此处交换长期访问令牌:

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]
于 2013-09-02T16:54:10.617 回答