2

私はFacebookC#SDK 6.0.20を使用しており、このようにFacebook(サーバーサイドフロー)に投稿しています。

dynamic parameters = new ExpandoObject();
parameters.message = message;
parameters.description = description;
parameters.link = url;
parameters.name = url;
parameters.picture = smallImage;
parameters.caption = "www.mysite.com";
parameters.properties = new
{
    text = joinPrompter,
    href = url
};
parameters.actions = new
{
    name = joinPrompter,
    link = url
};
var api = new FacebookClient
{
    AccessToken = accessToken,
    AppId = ClientID,
    AppSecret = ClientSecret
};
result = api.Post("me/feed", parameters);

私が渡しているプロパティを除いて、すべてが順調です。最後に投稿に次のように表示されます

テキスト:今すぐ参加してください!
href:http ://www.mysite.com

私への投稿/フィードの何が問題になっている可能性がありますか?

4

2 に答える 2

2

実際には、プロパティは公開前に JSON でエンコードする必要があります。

JsonArray jsonArray = new JsonArray();
jsonArray.Add(new {
  text = joinPrompter,
  href = url
});

parameters.properties = jsonArray.ToString();

これはfacebook-c#-sdkで内部的に使用されているSimpleJsonを使用したサンプルです。

または、単に次のようなものを使用できます。

parameters.properties = '[{"text":"Some text", "href":"http://example.com"}]';

更新:
使用できるようIList<object>で、Facebook C# SDK によって自動的にエンコードされるはずです:

IList<object> properties = new IList<object>();
properties.Add(new {
  text = joinPrompter,
  href = url
});
parameters.properties = properties;
于 2012-07-16T14:38:18.853 に答える
1

この問題は、すばらしい Facebook C# SDK にはありませんでした。使い方に問題がありました。propertiesこのように使用する必要があります

parameters.properties = new {
    URL = new
    {
        text = joinPrompter,
        href = url
    }
};
于 2012-07-17T09:59:33.180 に答える