ASP.NETは微信クライアントからアップロードされた画像を取得する

2279 ワード

ASP.NETは微信クライアントからアップロードされた画像を取得する
もともと私はこれがとても简単な事だと思って、それからしてやっともとは微信JS-SDKを使うことを発见します时、微信のHTML 5クライアントはピクチャーを直接サービス端にpostすることはできなくて、先に微信サーバーに提出して、それから私のサービス端はserverIdを通じてピクチャーを得る必要があって、大まかな流れは私はUMLを描いて、みんなは理解することができます
Created with Raphal 2.1.0微信クライアント微信サーバWebAPI WebAPIストレージサーバlocaID serverid serverID access token/serverid filename/stream filename/stream
現在、私たちはサーバーだけに関心を持っています.クライアントから送られてきたサーバーIDを入手し、微信のサーバーから画像をローカルにダウンロードします.これを実現するには、2つの前提があります.公衆番号を登録し、お金をあげなければなりません.これは、前に完了する必要がある認証を強調した理由です.access tokenを取得します.
我々が実装したコードは以下の通りである.
public async Task<string> Get(string mediaid)
{
    var queryString = HttpUtility.ParseQueryString(string.Empty);
    queryString["access_token"] = await Get();
    queryString["media_id"] = mediaid;

    var uri = "http://file.api.weixin.qq.com/cgi-bin/media/get?" + queryString;

    HttpResponseMessage response;
    response = await client.GetAsync(uri);

    var msg = await response.Content.ReadAsStreamAsync();
    var file = response.Content.Headers.ContentDisposition.FileName.Replace("\"", "");

    var helper = new ProjecToxfordClientHelper();

    var content = await FileHelper.ReadAsync (msg);

    FileHelper.SaveFile(content, file);

    return file;
}

アクセスtokenが正しくmedia_id(そのserverid)は有効で、微信サービス側は私たちにファイル名とストリームを返して、私たちはこれらのストリームに対していくつかの私たちが望んでいる処理をすることができます.
さて、今になって、私たちは微信サーバーに対して実現するインタフェースが少なくなりました.次はオックスフォード計画のFACEを実現する必要があります.