我一直在努力让Facebook C# SDK发布我的页面,但是我已经试了几天。
从我的谷歌搜索中,我发现应该按照以下步骤进行:
- 使用我的用户帐户为
manage_pages
和publish_stream
授权应用程序(通过此URL完成:https://graph.facebook.com/oauth/authorize?client_id=CLIENT_ID&redirect_uri=REDIRECT_URI&scope=publish_stream,manage_pages) - 获取用户访问令牌
- 交换用户访问令牌以获取长期访问令牌
- 使用长期用户访问令牌获取
me/accounts
- 从结果中获取页面访问令牌
- 使用长期访问令牌发布到
page_id/feeds
端点
我可以通过Graph Explorer遵循这个过程,并且它是有效的。页面上创建了一个带有生成令牌的帖子。
我如何使用C# SDK来做到这一点?
我尝试过:
dynamic userTokenResult = client.Get("oauth/access_token", new
{
client_id = appid,
client_secret = appsecret,
grant_type = "client_credentials"
});
dynamic longLivedResult = client.Get("oauth/access_token", new
{
client_id = appid,
client_secret = appsecret,
grant_type = "fb_exchange_token",
fb_exchange_token = userTokenResult.access_token;
});
client.AccessToken = longLivedResult.access_token;
// Post the message
dynamic messagePost = new
{
link = message.LinkUrl,
name = message.LinkName,
caption = message.LinkCaption,
description = message.LinkDescription,
message = message.Message
};
// Set the status
var postId = client.Post("pagename/feed", messagePost);
然而,我怀疑这返回的是应用程序访问令牌,而不是用户访问令牌(GET:me/accounts 失败)。