会社行きたくなかったんです。

自由になりたくて会社辞めました

IT Tips Web API Yahoo!ショッピングWeb API

VB.netでヤフーショッピングのストアカテゴリ一覧APIを使う方法

投稿日:

VB.netでヤフーショッピングのストアカテゴリ編集APIを使う方法で、アプリケーションからカテゴリを追加できるようになりました。
しかし、ストアカテゴリ編集APIで、カテゴリを新規追加した場合、自動で割り振られたカテゴリのページキーはレスポンスに含まれていないという謎の仕様です。

スポンサーリンク

仕方ないので、ヤフーショッピングのストアカテゴリ一覧APIを使って、カテゴリ一覧を取得して、その中から、該当するカテゴリのページキーを見つけることにしました。

VB.netでヤフーショッピングのストアカテゴリ一覧APIを使う方法

ストアカテゴリ一覧APIの仕様はこちらです。

        Dim sURL As String
        Dim objEnc As System.Text.Encoding = System.Text.Encoding.UTF8
        Dim objWC As System.Net.WebClient
        Dim byResult As Byte()
        Dim sRtn As String

        sURL = "https://circus.shopping.yahooapis.jp/ShoppingWebService/V1/stCategoryList"

        Dim objPostData As New System.Collections.Specialized.NameValueCollection
        objPostData.Add("seller_id", "[ストアアカウント]")
        objPostData.Add("page_key", "[親カテゴリのページキー]")
        objPostData.Add("access_token", "[アクセストークン]")

        Try

            objWC = New System.Net.WebClient()
            'PUTで送信します。
            byResult = objWC.UploadValues(sURL, "POST", objPostData)
            '結果はXML形式で渡されます。
            sRtn = System.Text.Encoding.UTF8.GetString(byResult)
        Catch ex As WebException

            Dim objEncError As Encoding = Encoding.UTF8
            Dim resError As WebResponse = ex.Response
            Dim resStreamError As Stream = resError.GetResponseStream()
            Dim srError As StreamReader = New StreamReader(resStreamError, objEncError)
            'エラーが発生した場合のレスポンス
            Dim htmlError As String = srError.ReadToEnd()
            srError.Close()
            resStreamError.Close()

        End Try

親カテゴリのページキーを指定しない場合は、第1階層を取得するので、階層構造になっている場合は、全カテゴリを取得するためにループする必要があります。

ページキー、カテゴリ名、更新日時がわかるので、新規登録したカテゴリのページキーを見つけ出すために、時間である程度絞り込むことができますが、毎回、全カテゴリをチェックして確認するなんて、ちょっと非効率で嫌だなって思いました。
良い方法が見つかったら、追記したいと思います。

-IT, Tips, Web API, Yahoo!ショッピングWeb API

Copyright© 自由になりたくて会社辞めました , 2024 AllRights Reserved Powered by AFFINGER4.