2018-02-24

DMM APIを使うときのAFFILIATE IDがどこかわからなくなってしまってInvalid Request Errorが出たときの解決法

DMM APIを使うときのAFFILIATE IDがどこかわからなくなってしまってInvalid Request Errorが出たときの解決法をまとめておく。




DMM APIのSDKを読んでいて、DMM APIのAFFILIATE IDが違うとずっと言われてしまっていた。今回試していたリクエストURLは以下のようになっていた。

https://api.dmm.com/affiliate/v3/ItemList?api_id=J5PasdasASsdeJshU&affiliate_id=affiliate-990&site=DMM.R18&service=digital&floor=videoa&hits=10&sort=date&keyword=上原亜衣&output=xml


<xml>
    <request>
        <parameters>
            <api_id>
                J5adsaaAesSfJfsZ6zzT5We1U
            </api_id>
            <affiliate_id>
                affiliate-990
            </affiliate_id>
            <site>
                DMM.R18
            </site>
            <service>
                digital
            </service>
            <floor>
                videoa
            </floor>
            <hits>
                10
            </hits>
            <sort>
                date
            </sort>
            <keyword>
                上原亜衣
            </keyword>
            <output>
                xml
            </output>
        </parameters>
    </request>
    <result>
        <status>
            400
        </status>
        <message>
            BAD REQUEST
        </message>
        <errors>
            <affiliate_id>
                Invalid Request Error
            </affiliate_id>
        </errors>
    </result>
</xml>

しかし、エラーが出ているよう。

 <errors>
            <affiliate_id>
                Invalid Request Error
            </affiliate_id>
        </errors>

とのこと。



解決法はとてもシンプルで、アフィリエイトIDが間違っていたようだった。SDKドキュメントを見ると、

論理名物理名必須値のサンプル概要
APIIDapi_id登録時に割り振られたID
アフィリエイトIDaffiliate_idaffiliate-990登録時に割り振られた990~999までのアフィリエイトID
サイトsiteDMM.R18一般(DMM.com)かアダルト(DMM.R18)か
こう書いてあったので、アフィリエイトIDを上記のままaffiliate-990に変更したが、これがよくなかった。どうやら、ちゃんと個人個人にアフィリエイトIDは発行されているようで、


アカウント情報からアフィリエイトIDが確認できるようだ。そこのアフィリエイトIDにしたらうまくいった。所要時間1時間。SDKちょっとわかりにくかった。


注目の投稿

 PythonのTweepyを利用して、Twitter APIを利用している。 その中で、ハマったポイントをメモしておく。 まず、Searchに関して。 Twitter検索は、クライアントアプリ側では、全期間の検索が可能になっている。 一方で、APIを利用する際は、過去1週間しか...