最近、WeChat が企業公開アカウントを企業 WeChat にアップグレードしたというニュースを見ました。当時は気にしていませんでしたが、後で、会社の公開アカウントのインターフェイスを使用して通知メッセージを送信するプログラムがメッセージを送信できなくなっていることに気づきました。この記事では、企業公式アカウントを企業WeChatにアップグレードした後にメッセージが送信できない原因と解決策について説明します。
新しいバックエンドにログインして確認すると、アプリケーションの Secret 値が変更され、以前より桁数が減っていることがわかります。コード内の Secret 値を新しい値に置き換えた後も、まだ機能しないことがわかりました。デバッグ後、post リクエストを使用してインターフェイスを呼び出してメッセージを送信するときにエラーが見つかりました: {"errcode":-1,"errmsg":"Invalid input"}。分析には 2 つの理由が考えられます。1 つは呼び出されたメッセージ送信インターフェイスのアドレスが間違っているか、渡されたポスト パラメーターの形式が間違っていることです。
幸いなことに、公式 Web サイトで WeChat Enterprise の API ドキュメントを見つけました: https://work.weixin.qq.com/api/doc には、より詳しい使用手順が記載されています。呼び出し側インターフェイスの URL アドレスが変更されていないことが確認されました (https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=ACCESS_TOKEN は引き続きメッセージの送信に使用されます)。ただし、テキストメッセージの形式が少し異なることに気付きました。公式サイトの例は次のとおりです。
{ "touser" : "UserID1|UserID2|UserID3", "toparty" : " PartyID1|PartyID2 ", "totag" : " TagID1 | TagID2 ", "msgtype" : "text", "agentid" : 1, "text" : { "content" : "你的快递已到,请携带工卡前往邮件中心领取。\n出发前可查看<a href=\"http://work.weixin.qq.com\">邮件中心视频实况</a>,聪明避开排队。" } }
上記の UserID と PartyID は以前は数値として渡されていたはずですが、この例ではそれらは引用符で囲まれています。つまり、文字列として扱われます。そこで、コードを文字列に変更して試してみたところ、うまくいきました。 。 。
関連する推奨事項:
エンタープライズ WeChat パブリック プラットフォーム API インターフェイス開発 3G Web サイト_PHP チュートリアル
以上がエンタープライズパブリックアカウントをエンタープライズ WeChat にアップグレードした後にメッセージ送信が失敗する理由の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。