2015-09-25 85 views
0

我剛剛開發了我的第一個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); 
        } 
       } 
      } 
     } 

回答

0

隨着API 2.4版本,你可以不再以普通用戶的身份登錄常規組。

user_groups權限已被刪除(2015年10月6日將刪除所有應用程序,無論使用哪種API版本),並且只有user_managed_groups現在可用 - 並且只允許訪問(讀/寫)到用戶是管理員的組。

https://developers.facebook.com/docs/graph-api/reference/v2.4/group/feed#publish
https://developers.facebook.com/docs/apps/changelog#v2_4_deprecations

+0

我剛剛創建的測試組,其中我聯繫,我可以通過我的應用程序,即使只授予「publish_actions」權限後出現。因此,看起來我無法創建自己的應用在其他用戶不是管理員的羣組上發帖。我正在尋找確認我的聲明,如果它是真的,或者我錯了,我可以以某種方式讓我的應用程序張貼在用戶只是成員,而不是管理員組? – SuperSane

+0

是的,只有管理員用戶可以通過API發佈給組,正常成員不能再使用。 (除非它是一個應用程序和遊戲組)。 – CBroe

+0

明白了,謝謝你的回覆隊友:) – SuperSane

相關問題