2013-06-30 66 views
1

我使用下面的代碼(已發佈在Stackoverflow某處)發佈在Facebook的頁面牆上。發表在Facebook的牆上,無需登錄(C#)

它可以正常工作,但如果我沒有登錄,它會打開Facebook登錄窗口。 是否可以代表特定Facebook頁面的管理員帳戶執行代碼?

protected void Page_Load(object sender, EventArgs e) 
    { 
     string app_id = "123410186463705"; 
     string app_secret = "1234ecd9bea862197372de656eb3d7b"; 

     // using Facebook SDK for .NET 
     var fb = new FacebookClient(); 
     dynamic result = fb.Get("oauth/access_token", new 
     { 
      client_id = app_id, 
      client_secret = app_secret, 
      grant_type = "client_credentials", 
      scope = "manage_pages,offline_access,publish_stream", 
      redirect_uri = Request.Url.AbsoluteUri 
     }); 

     var app_token = result.access_token; 

     var client = new FacebookClient(app_token); 

     dynamic parameters = new ExpandoObject(); 
     parameters.message = "Check out this funny article"; 
     parameters.link = "http://www.natiska.com/article.html"; 
     parameters.picture = "http://www.natiska.com/dav.png"; 
     parameters.name = "Article Title"; 
     parameters.caption = "Caption for the link"; 

     //446533181408238 is my fan page 
     client.Post("/446533181408238/feed", parameters); 
    } 
+0

檢查在這裏:http://stackoverflow.com/questions/17426018/generate-never-expire-access-token-for-facebook-page –

+0

不知道...但上面的代碼是大約2歲,它可能無法正常工作了。 –

回答

3

是的,這是可能的。您需要使用頁面訪問令牌。

Generating a Page Access Token.

一旦你收到一個頁面訪問令牌,你可以存儲,因爲它永遠不會過期(如果通過長期用戶令牌/服務器端用戶令牌生成)。最後使用該標記初始化您的FacebookClient

C#特定教程是here。該文章確實很老,並且使用了已棄用的offline_access權限,但至少您會獲得正確的邏輯。

相關問題