2013-08-21 44 views
2

我已經寫下如下函數來將單張Photo發佈到FB頁面。但出現錯誤說「(OAuthException - #200)(#200)未發佈的帖子必須作爲頁面本身發佈到頁面。」(OAuthException - #200)(#200)未發佈的帖子必須作爲頁面本身發佈到頁面

private void postToFBPage() 
{ 
    string app_id = ConfigurationManager.AppSettings["FBAppKey"]; 
    string app_secret = ConfigurationManager.AppSettings["FBSecretKey"]; 
    string scope = ConfigurationManager.AppSettings["FBPermission"]; 
    string access_token; 

    if (Session["access_token"] == null) 
     access_token = getAccessToken(); 
    else 
     access_token = Session["access_token"].ToString(); 

     var client = new FacebookClient(access_token); 
     List<string> imgs = (List<string>)Session["local_processedImgs"]; 

     DateTime dt=new DateTime(Convert.ToInt32(ddlYear.SelectedValue) 
           ,Convert.ToInt32(ddlMonth.SelectedValue) 
           ,Convert.ToInt32(ddlDate.SelectedValue) 
           ,Convert.ToInt32(ddlHour.SelectedValue) 
           ,Convert.ToInt32(ddlMin.SelectedValue) 
           ,0); 

     double UTC = Facebook.DateTimeConvertor.ToUnixTime(dt); 

     dynamic post = null; 
     dynamic parameters = new ExpandoObject(); 
     parameters.source = new FacebookMediaObject 
     { 
      ContentType = "image/" + Path.GetExtension(imgs[0]), 
      FileName = imgs[0] 
     }.SetValue(File.ReadAllBytes(imgs[0])); 
     parameters.message = CKEditor1.Text; 
     parameters.scheduled_publish_time = UTC; 
     parameters.published = false; 
     parameters.scope = scope; 

     try 
     { 
      post = client.Post("/" + ddlFBPage.SelectedValue + "/photos" , parameters); 
     } 
     catch (Exception ex) 
     { 
      //error 
     } 
} 

請幫我解決這個問題。

-

問候

迪帕克·拉伊

回答

5

我得到了它自己。有多種類型的令牌。在我上面的代碼中,我傳遞了「用戶訪問令牌」,而不得不通過「頁面訪問令牌」。要生成「頁面的訪問令牌」使用get方法使用以下網址:

string url = string.Format(
    "https://graph.facebook.com/{0}?fields=access_token&access_token={1}", 
    pageID, user_access_token); 

希望這將有助於:)

+0

非常有用的。爲我們節省了很多時間和挫折。 – jgroenen

相關問題