微信インタフェースはinvalid mediaを返します_id hint原因分析

2539 ワード

微信を呼び出して一時素材インタフェースを取得し、https://api.weixin.qq.com/cgi-bin/media/get?access_token=ACCESS_TOKEN&media_id=MEDIA_ID{"errcode":40007,"errmsg":"invalid media_id hint: [01073723]"}というエラーが発生しました
分析手順
Step 1:微信公衆プラットフォーム技術ドキュメントのグローバルリターンコード説明を照会することにより、40007が不法なメディアファイルidを示すことがわかる.Step 2:取得テンポラリ素材インタフェースドキュメントを表示し、そのパラメータの説明から結果が見えないようです.
パラメータ
必要かどうか
説明
access_token
はい
インタフェース証明書の呼び出し
media_id
はい
メディアファイルid
Step 3:バックエンド呼び出しのインタフェースに原因が見つからない以上、フロントエンド呼び出しの微信JS-SDK説明ドキュメントを引き続き表示します.画像インタフェースの下にアップロード画像インタフェースがあることが分かった.
wx.uploadImage({
    localId:'', //          ID, chooseImage    
    isShowProgressTips:1,   //   1,      
    success:function (res) {
        var serverId = res.serverId; //         ID
    }
});

上のインタフェースのlocalIdの注釈から、またchooseImageインタフェースを案内してくれました.このインタフェースのドキュメントの下に注釈があります.重要です.重点を置いて、後で話します.まず、このchooseImageインタフェースを見てみましょう.
wx.chooseImage({
    count:1,    //  9
    sizeType:['original','compressed'], //            ,      
    sourceType:['album','camera'], //             ,      
    success:function (res) {
        var localId = res.localIds; //         id  ,localId    img   src      
    }
});
uploadImageインタフェースのこの注釈を見てみましょう.
備考:アップロード画像の有効期間は3日間で、微信マルチメディアインタフェースで自分のサーバーに画像をダウンロードすることができます.ここで得られたserverIdmedia_idです.
これで全体の流れが比較的通じるようになり、フロントエンドはまずchooseImageインターフェースを呼び出してlocalIdsを取得し、次にuploadImageインターフェースを呼び出し、パラメータlocalIdsを利用してserverIdを取得し、バックエンドは微信マルチメディアインターフェースを呼び出し、フロントエンドから入力されたパラメータserverIdを利用してアップロードされた画像を取得する.Step 4:こんなにくどくど言って、いったいどこが間違っているのか、まずフロントエンドから私に伝わったidがきっと微信が返したidであることを確定することができますが、さっきの分析から、idには2種類あることがわかります.1つはlocalIdであり、1つはserverIdである.では、フロントエンドがlocalIdserverIdとしてバックエンドに伝えた可能性があると推測します.Step 5:検査検証により、やはりそうです.上記の問題が発生した場合は、まずidのフォーマットをチェックする必要があります.以下は合法的なid形式:qedijYvbpoiuwn0UBeZLzM003kp4sjoeohc9epzNUhuKQLTBS-22EBlpghjio、すなわちserverIdの形式である.localIdはあなたの携帯電話システムによって、AndroidiOSの2種類に分けられ、それぞれの形式は:weixin://resourceid/d5b205e1c71994dcd39b6bb2045e201fwxLocalResource://564545039458235です.
リファレンスドキュメント
  • グローバルリターンコード説明
  • 仮素材
  • を取得する.
  • 微信JS-SDK説明文書