2013-07-17 81 views
0

我得到的異常是「用戶未授權應用程序執行此操作」。我知道這是一個很好的發佈例外,但是我沒有遵循任何規則來獲得此代碼的工作。我正嘗試通過API發佈到朋友牆。發佈到朋友牆但例外

AuthenticationResult result = OAuthWebSecurity.VerifyAuthentication(Url.Action("ExternalLoginCallback", new { ReturnUrl = returnUrl })); 

String accessToken = result.ExtraData["accesstoken"]; 
FacebookClient client = new FacebookClient(accessToken); 

dynamic parameters = new ExpandoObject(); 
arameters.message = "Testing"; 

我設法讓我的朋友們的Facebook的ID,這是facebookFriendID

object resTest = client.Post("/" + facebookFriendID + "/feed", parameters); 

這是拋出異常。我是否需要在我的應用程序中設置任何特殊選項,以便將其發佈到朋友牆上和/或接受帖子的用戶是否需要先接受該應用程序?還有其他需要發送的參數嗎?

在此先感謝

回答

0

發佈到朋友的牆已經通過API被禁用

留言給朋友牆產生高水平的負面的用戶反饋,包括「隱藏」和「標記爲垃圾郵件」等我們從取出API。如果您想允許用戶通過您的應用發佈到朋友的時間表,您可以調用提要對話框。通過用戶提及標籤或動作標籤的朋友的故事將顯示在朋友的時間軸上(假設朋友認可標籤)。

https://developers.facebook.com/blog/post/2012/10/10/growing-quality-apps-with-open-graph/

0

我認爲除了是非常明確的:您的應用程序必須向目標用戶的授權後在其壁上,並且用戶必須批准。想象一下,如果有任何應用程序可以在任何人的牆上代表任何人發佈任何想要的內容,那麼Facebook將如何呢?

根據您的實施情況,您需要詢問publish_stream,status_update或甚至其他許可。

我是否將此作爲參數傳遞? - CR41G14

我認爲它比這更復雜,因爲您必須在演示前徵求許可。查看this question瞭解可能對您有幫助的一些信息(這裏也有其他幾個關於該主題的問題)。

+0

好吧我傳遞這是一個PARAM? – CR41G14

+0

對不起,這也沒有幫助。實施起來相當困難! – CR41G14

0

確保哪個授權檢查用戶只能訪問他/她的頁面或整個應用程序。

對於基本的授權,你可以做這樣的

[BasicAuthorize] 
    public ActionResult Index() 
    { 
     // code will go here 
    } 

匿名

[AllowAnonymous] 
    public ActionResult Index() 
    { 
     // code will go here 
    } 

[BasicAuthorize]至少需要用戶應該登錄

[使用AllowAnonymous]允許每一個應用

+0

這是如何堅持張貼到牆上? – CR41G14