3

WeChat でデバッグ公式アカウントを持っています。http://admin.wechat.com/debug/sandboxのフィールドにパブリック URL とトークンを入力し、http://admin.wechat.com/debug/でリクエストのデバッグを試みました。

私の ASP.Net [.Net4.5] Web API アプリケーションの POST メソッドは次のようになります。

public HttpResponseMessage PostMessage([FromBody]Strikemedia.Api.WeChat.TextMessage value)
    {
        if (value == null)
        {
            var richMediaMessage = new RichMediaMessage();
            richMediaMessage.touser = value.FromuserName;

            //Create Article
            var item = new Article()
            {
                title = "Didn't receive anything back",
                description = "Mind entering 'test'",
                picurl = "URL",
                url = "URL"
            };
            var articles = new List<Article>();
            articles.Add(item);
            richMediaMessage.articles = articles;
            richMediaMessage.articleCount = articles.Count;
            return Request.CreateResponse(HttpStatusCode.OK, richMediaMessage, "application/json");
        }

        var exploded = value.Content.Split(' ')[0];

        var richMedia = new RichMediaMessage();
        richMedia.touser = value.FromuserName;

        //Create Article
        var article = new Article() { 
            title = response.KeywordDescription,
            description = response.Response,
            picurl = "URL",
            url = "URL"
        };
        var _articles = new List<Article>();
        _articles.Add(article);
        richMedia.articles = _articles;
        richMedia.articleCount = _articles.Count;

        //Return response
        var resp = Request.CreateResponse(HttpStatusCode.OK, richMedia, "application/json");
        //resp.RequestMessage.Content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/json");
        return resp;
    }

JSON 形式の RichMessageType で応答する必要があり、XML 形式で受信されます

私は何かを見逃していますか、それとも何かを見落としていますか?

4

1 に答える 1

1

URL とトークンを admin.wechat.com に送信し、URL とトークンが受け入れられたことを確認できますか?

また、XML を取得し、XML no json 応答で応答することにも注意してください。

ご覧になりましたか: http://youtu.be/kB20Zf51QWU そして、この http://youtu.be/_2FSzD2B2F0

これは、Google で「wechat ガイドのメッセージ API」を検索すると見つかる XML のドキュメントです。

したがって、admin.wechat.com でアプリを送信しても成功メッセージが届かない場合は、こちらからテスト URL を送信してください。この URL を見つけるには、アクセス ログをチェックして、wechat が呼び出している URL を正確に確認してください。それからここに投稿してください。wechat のように URL にアクセスすると、画面に「echostr」が表示されるだけであることに注意してください (ブラウザでソースを表示する場合)。XML なし、HTML なし、echostr のみ。

また、「echostr」の前後にスペースや改行がないことを確認してください。ソースを表示すると、echostr GET パラメータの値である 1 行のみである必要があります。

XML 応答は、ユーザーからのメッセージへの応答を実際に開始したときにのみ取得されます。今のところ、Wechat はセキュリティが正しく設定されているかどうかを確認しているだけです。

また、サーバーが負荷分散されている場合は、署名の検証をスキップして、echostr GET パラメーターが渡されたときに独自の検証を作成し、「echostr」パラメーターのみを画面にエコーする必要があることに注意してください。

于 2014-04-10T14:42:32.760 に答える