nextCursorを利用した組織リストの取得について(Python)

API勉強中

2022.09.13既読 892

下記APIページを参照しながら、LINEWORKSに登録している組織リストを取得しようとしています。

組織リストの取得 - Orgunit - LINE WORKS Developers Document (worksmobile.com)

ソースは下記のように記載しております。

一部抜粋
----------------------------------------
#組織情報の取得
def get_orgunits(access_token, domain_id):
    url = "{}/orgunits?domainId={}".format(BASE_API_URL,domain_id)

    headers = {
          'Content-Type' : 'application/json',
          'Authorization' : "Bearer {}".format(access_token)
        }

    params = {​
    }
    form_data = params

    r = requests.get(url=url, data=form_data, headers=headers)
   
    body = json.loads(r.text)
    contents = body['orgUnits']​
   
    #続きがあるかどうか?
    cursor = None
    if 'responseMetaData' in body :
        if 'nextCursor' in body['responseMetaData'] :
            cursor = body['responseMetaData']['nextCursor']
           ​
    while cursor is not None :
        url = "{}/orgunits?domainId={}&cursor={}".format(BASE_API_URL,domain_id,cursor)

        r = requests.get(url=url, data=form_data, headers=headers)
        body = json.loads(r.text)
        if 'orgUnits' in body :
          
            contents.extend(body['orgUnits'])​
        print(body)
        cursor = None
        if 'responseMetaData' in body :
            if 'nextCursor' in body['responseMetaData'] :
                cursor = body['responseMetaData']['nextCursor']
        print(cursor)
   
    return contents

----------------------------------------
1回目のリクエストは正常にレスポンスが返ってきておりますが、
件数が多いためリストのカーソル値を利用して続きを取得しようとすると、2回目のリクエストで
下記のようなレスポンスとなりました。
{'code': 'INVALID_PARAMETER', 'description': 'cursor is invalid.'}
2022年7月22日に実行した際は、問題なく取得できていたのですが、何か仕様等の変更があったのでしょうか?

もし当方の設定等に誤りがあるようであれば、その点についてご指摘いただけると助かります。
よろしくお願いいたします。

コメント1

  • 업데이트 된 답글입니다.

    佐藤正宗

    私は Javascript 使いなので Python は詳しくなく恐縮なのですが…Query Parameter で cursor を uri に入れ込む際、uri endcode はされていますか?

    2022.09.16

    0
前の投稿 ユーザーの部分更新における利用権限等をexternalKeyで更新する方法について
次の投稿リッチメニューの反映
リスト

まだ、解決できませんか?
今すぐ実際に使用しているLINE WORKSユーザーに質問してみましょう。