我剛剛開發了我的第一個C#應用程序發佈在Facebook上。目前,我沒有任何問題可以發佈在我的牆上,但是我想要做的是在羣組的牆上發帖,但不是以管理員身份發帖,而是以普通用戶的身份發帖。當我將ID更改爲使用組1而不是我的配置文件發佈後,我得到auth錯誤。看來我缺少一些權限。請看看我的代碼,並告訴我缺少什麼信息可以在給定組的牆上發佈,並再次強調,我想以組織的常規用戶身份發帖,而不是管理員。C#應用程序發佈在facebook組作爲普通用戶
所以我使用這個,當我獲得權限。
private const string ExtendedPermissionsNeeded = "publish_actions";
我使用這個生成登錄網址
private string GenerateLoginUrl()
{
dynamic parameters = new ExpandoObject();
parameters.client_id = app_id;
parameters.redirect_uri = "https://www.facebook.com/connect/login_success.html";
parameters.response_type = "token";
parameters.display = "popup";
if (!string.IsNullOrWhiteSpace(ExtendedPermissionsNeeded))
parameters.scope = ExtendedPermissionsNeeded;
var fb = new FacebookClient();
Uri loginUri = fb.GetLoginUrl(parameters);
return loginUri.AbsoluteUri;
}
最後這裏是我用來在Facebook上發佈的內容:
private void webBrowser1_Navigated(object sender, WebBrowserNavigatedEventArgs e)
{
string accessToken;
bool authorized;
if (webBrowser1.Visible)
{
var fb = new FacebookClient();
FacebookOAuthResult oauthResult;
if (fb.TryParseOAuthCallbackUrl(e.Url, out oauthResult))
{
if (oauthResult.IsSuccess)
{
accessToken = oauthResult.AccessToken;
authorized = true;
}
else
{
accessToken = "";
authorized = false;
}
if (authorized)
{
fb = new FacebookClient(accessToken);
dynamic result = fb.Get("me");
fb.Post("/100000853192437/feed", new { message = "test " });
}
else
{
MessageBox.Show("Couldn't log into Facebook!", "Login unsuccessful", MessageBoxButtons.OK,
MessageBoxIcon.Error);
}
}
}
}
我剛剛創建的測試組,其中我聯繫,我可以通過我的應用程序,即使只授予「publish_actions」權限後出現。因此,看起來我無法創建自己的應用在其他用戶不是管理員的羣組上發帖。我正在尋找確認我的聲明,如果它是真的,或者我錯了,我可以以某種方式讓我的應用程序張貼在用戶只是成員,而不是管理員組? – SuperSane
是的,只有管理員用戶可以通過API發佈給組,正常成員不能再使用。 (除非它是一個應用程序和遊戲組)。 – CBroe
明白了,謝謝你的回覆隊友:) – SuperSane