我使用的是Facebook的c#-sdk v5.0.50.0。我的silverlight應用程序的用戶需要一個選項,將我的軟件生成的信息發佈到他們的Facebook牆上。如何發佈到Silverlight應用程序的Facebook牆
我認爲SDK中的SilverlightInBrowser示例是我所需要的最接近的示例,它提示用戶獲取權限並讀取用戶信息。我已經知道該部分功能正常(但可以鏈接到任何您知道的完整工作示例)。
樣本應用程序使用
private string[] requestedFbPermissions = new[] { "user_about_me" };
我相信我將不得不改變,以使張貼在牆上,在這裏列出的權限之一 - http://developers.facebook.com/docs/reference/api/permissions/可能「publish_stream」將是我的猜測,我我無法測試,直到我得到張貼位工作。
下一步是寫這篇文章。我還沒有看到Silverlight版本,所以我稍微修改了一個非silverlight問題的答案,因爲silverlight稍有不同(例如異步回調)。我的代碼看起來像這樣:
private void fbpost_Click2(object sender, RoutedEventArgs e)
{
var client = new FacebookClient(fb.AccessToken);
dynamic parameters = new ExpandoObject();
parameters.message = "test posting - ignore";
parameters.link = "http://www.example.com/link";
parameters.picture = "http://www.example.com/picture.jpg";
parameters.name = "Test Post";
parameters.caption = "Test Post Caption";
parameters.description = "description here";
parameters.actions = new
{
name = "View on www.example.com",
link = "http://www.example.com",
};
parameters.privacy = new
{
value = "ALL_FRIENDS",
};
parameters.targeting = new
{
countries = "US",
regions = "6,53",
locales = "6",
};
client.PostCompleted += new EventHandler<FacebookApiEventArgs>(client_PostCompleted);
client.PostAsync("me/feed", parameters);
}
void client_PostCompleted(object sender, FacebookApiEventArgs e)
{
dynamic result = e.GetResultData();
}
但是發生的事情是,我得到一個錯誤調用client.PostAsync("me/feed", parameters);
嘗試通過安全透明的方法「SimpleJson.Reflection.CacheResolver.CreateDynamicMethod(System.String,System.Type的,系統System.Type. System.Type(System.String,System.Type,System.Type [],System.Type,Boolean)''訪問安全關鍵方法'System.Reflection.Emit.DynamicMethod..ctor'失敗。
謝謝。我相信我的SDK網站上有最新的源代碼(來自最新的.zip)。我做了這個編輯(嘗試4次),將版本號從5.0.50.0遞增到5.0.53.0,以確保我得到了新的dll,現在我在SimpleJson.cs的第1597行得到了不同的錯誤,該行是'return delegate (object instance){return getMethodInfo.Invoke(instance,Type.EmptyTypes); };'並且錯誤是通過方法SimpleJson.Reflection.CacheResolver + <> c__DisplayClassa。 b__9(System.Object)'嘗試訪問方法'<> f__AnonymousType0'2 。 get_name()'失敗。「 –