Windows PhoneでFacebook C# SDKを使ってウォールへ写真を投稿する

By | 2013/04/30
Pocket

Facebook C# SDKを使用して、ウォールへ写真を投稿してみましょう。ここでは、アプリリソースとして存在している写真を投稿します。

ソリューションエクスプローラーを右クリックして、メニューから[追加]、[既存の項目]の順に選択して写真を追加します。ビルドアクションは「コンテンツ」へ変更します。

ログイン処理時に取得したアクセストークンを使用し、FacebookClientインスタンスを生成します。

byte型配列に変換した写真をメディア情報へ設定して、写真の名前とマルチメディア情報をPostAsyncメソッドでFacebookに写真を投稿しています。

private void btnUpload_Click(object sender, EventArgs e) {
    // アクセストークンを取得する(ここの部分は各自で実装する必要があります)
    var accessToken = GetAccessToken();

    // FacebookClientインスタンスを生成
    var client = new FacebookClient(accessToken);

    // アプリリソースからリソース情報を取得する
    var resource = App.GetResourceStream(new Uri("Penguins.jpg", UriKind.Relative));

    // byte型配列で画像データを取得する
    byte[] bytes = null;
    using (var strm = resource.Stream) {
        bytes = new byte[strm.Length];
        strm.Read(bytes, 0, bytes.Length);
    }

    // メディア情報を設定する
    var media = new FacebookMediaObject() {
        FileName = "Penguins.jpg",
        ContentType = "image/jpeg"
    };
    media.SetValue(bytes);

    // 投稿情報にセットする
    var param = new Dictionary<string, object>();
    param["name"] = "photo name";
    param["@file.jpg"] = media;

    client.PostAsync("/media/photos", param);
}

投稿された写真は、以下のように表示されます。