1
這種情況: 我有一個網站,並創建「職位」。在創建新帖子時,我想將新帖子發送到我的Facebook頁面Feed。我已經把所有的代碼放到了這裏,只要我從圖形API瀏覽器工具中獲取訪問令牌,它就可以正常工作。大約一個小時之後,這不會起作用。當我從代碼生成訪問令牌時,它似乎是一個應用程序訪問令牌,並且它不允許我訪問我的頁面。所以最大的問題是如何從代碼中獲取用戶訪問令牌,這些代碼將有權訪問我的頁面。C#SDK張貼到我自己的頁面Feed
這是我如何獲取訪問令牌。
private static string GetApiAccessToken()
{
var client = new FacebookClient();
dynamic result = client.Get("oauth/access_token", new
{
client_id = SessionGetter.Instance.FacebookApiKey,
client_secret = SessionGetter.Instance.FacebookSecretKey,
grant_type = "client_credentials",
scope = "manage_pages"
});
return result.access_token;
}
然後我用訪問令牌,試圖讓頁面訪問令牌,這是它告訴我,我沒有授權,所有我回來在字典中是一個「身份證」。
private static string GetPageAccessToken(string accessToken, string pageId)
{
try
{
var fb = new FacebookClient(accessToken);
var parameters = new Dictionary<string, object>();
parameters["fields"] = "access_token";
var result = (IDictionary<string, object>)fb.Get(pageId, parameters);
var pageAccessToken = (string)result["access_token"];
return pageAccessToken;
}
catch (FacebookApiException ex)
{
}
return null;
}
現在就像我說的,如果我使用圖表瀏覽器中的訪問令牌,代碼工作正常。 然後柱到圖形API
var facebookClient = new FacebookClient(pageAccessToken);
var result = (IDictionary<string, object>)facebookClient.Post("me/feed", new Dictionary<string, object>
{{"message",postMessage}, {"picture", csLogo},
{"link", LinkHelper.AssignmentUrl(wrapper.Assignment)}});