gpt4 book ai didi

facebook - 使用 Facebook C# SDK 发布到页面

转载 作者:行者123 更新时间:2023-12-05 08:17:40 24 4
gpt4 key购买 nike

我使用 Facebook C# SDK 已有一段时间了,但它的版本非常旧,而且我仍在使用 REST API(我认为)。我只关心使用 API 发布到我自己的 Facebook 页面(我有一个 WCMS 插件可以将内容发布到我们机构的 Facebook 页面)。我想知道是否有人知道关于如何使用最新版本的 SDK 进行此设置的好教程?我还关心当 offline_access 消失时这将如何工作,所以任何关于这方面的想法都会受到赞赏。我宁愿不必每 60 天手动获取一个新的访问 token 。这似乎有些不必要,因为我用来发帖的应用与我要发帖的页面位于同一个 FB 帐户中。

最佳答案

这是一种方法:

    public static string RefreshTokenAndPostToFacebook(string currentAccessToken)
{
string newAccessToken = RefreshAccessToken(currentAccessToken);
string pageAccessToken = GetPageAccessToken(newAccessToken);
PostToFacebook(pageAccessToken);
return newAccessToken; // replace current access token with this
}

public static string GetPageAccessToken(string userAccessToken)
{
FacebookClient fbClient = new FacebookClient();
fbClient.AppId = "app id";
fbClient.AppSecret = "app secret";
fbClient.AccessToken = userAccessToken;
Dictionary<string, object> fbParams = new Dictionary<string, object>();
JsonObject publishedResponse = fbClient.Get("/me/accounts", fbParams) as JsonObject;
JArray data = JArray.Parse(publishedResponse["data"].ToString());

foreach (var account in data)
{
if (account["name"].ToString().ToLower().Equals("your page name"))
{
return account["access_token"].ToString();
}
}

return String.Empty;
}

public static string RefreshAccessToken(string currentAccessToken)
{
FacebookClient fbClient = new FacebookClient();
Dictionary<string, object> fbParams = new Dictionary<string, object>();
fbParams["client_id"] = "app id";
fbParams["grant_type"] = "fb_exchange_token";
fbParams["client_secret"] = "app secret";
fbParams["fb_exchange_token"] = currentAccessToken;
JsonObject publishedResponse = fbClient.Get("/oauth/access_token", fbParams) as JsonObject;
return publishedResponse["access_token"].ToString();
}

public static void PostToFacebook(string pageAccessToken)
{
FacebookClient fbClient = new FacebookClient(pageAccessToken);
fbClient.AppId = "app id";
fbClient.AppSecret = "app secret";
Dictionary<string,object> fbParams = new Dictionary<string,object>();
fbParams["message"] = "Test message";
var publishedResponse = fbClient.Post("/your_page_name/feed", fbParams);
}

关于facebook - 使用 Facebook C# SDK 发布到页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9879466/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com