API2.0でのUSERリスト取得について
お世話になっております。
API2.0+PHP(Laravel)にてユーザリストの取得に躓いており、ご助力賜りたく投稿させていただきました。
本来やりたい事としては「組織に対してトークbotからトークメッセージを送信」だったのですが、調べてみた結果「トークbotからのメッセージ送信は個人IDもしくはトークルームID以外にできない」との事でしたため、現在は「リストを取得→組織に分類された個人にメッセージ送信」という流れにしたいと考えております。
そのうえでAPI2.0を利用しユーザリストを取得しようとしておりますが、私の理解力が不足しており上手くユーザリストが取得できておりません。
お手数をお掛けしますが、お知恵をお貸しください。
(トークンまでは取得できております)
実際のコード
// トークン取得
$token = $lineWorks->lw_get_accesstoken($client_id,
$client_secret,
$service_account_id,
$private_key,
'user,user.read');
// ヘッダー情報
$headers = ['Content-Type' => 'application/json; charset=UTF-8',
'Authorization' => 'Bearer ' . $token->access_token
];
// ペイロード
$payload = [
'domainId' => 0000000000,
'count' => 10,
];
// HTTPリクエストを送信する
$response = \Http::withHeaders($headers)->get($url, $payload);
$response
~~~ 略 ~~~
["reasonPhrase":"GuzzleHttp\Psr7\Response":private]=>string(2) "OK"
["statusCode":"GuzzleHttp\Psr7\Response":private]=>int(200)
~~~ 略 ~~~
※他どのdump項目を転記させていただけばよろしいでしょうか
ステータスコード等問題はなさそうなのですが、ユーザリストのデータは入っていない状態です。
不勉強でお恥ずかしい限りですが、何卒よろしくお願いいたします。
投稿に新しいコメントが追加されましたら通知を送信します。
コメント2
업데이트 된 답글입니다.
ss
Pythonですが、サンプルコード置いておきますので、参考にして頂ければと思います。
"""ユーザー情報取得(一覧)"""
url = 'https://www.worksapis.com/v1.0/users?domainId=0000000000&count=10'
access_token = ''
headers = {
'Authorization': "Bearer {}".format(access_token),
}
r = requests.get(url=url,headers=headers)
hoge = json.loads(r.text)
print(hoge['users'][0])
response例
{'domainId': 0000000000, 'userExternalKey': '', 'email': 'xxxxxxx@xxxxx.co.jp', 'userName': {'lastName': 'テスト', 'firstName': '太郎', 'phoneticLastName': 'テスト', 'phoneticFirstName': 'タロウ'}, 'i18nNames': [], 'nickName': None, 'privateEmail': 'xxxxxxx@xxxxx.co.jp', 'aliasEmails': [], 'employmentTypeId': 'xxxxxxx', 'searchable': True, 'organizations': [{'domainId': 0000000000, 'primary': True, 'userExternalKey': '', 'email': 'xxxxxxx@xxxxx.co.jp', 'levelId': None, 'executive': False, 'orgUnits': [{'orgUnitId': 'xxxxxxx', 'primary': True, 'positionId': 'xxxxxxx', 'isManager': True, 'visible': True, 'useTeamFeature': True, 'positionName': '社長', 'orgUnitExternalKey': None, 'orgUnitName': 'システム部', 'orgUnitEmail': 'busyo@xxxxx.co.jp', 'positionExternalKey': None}], 'organizationName': 'テスト株式会社', 'levelExternalKey': None, 'levelName': None}], 'telephone': None, 'cellPhone': '+81 00012345678', 'fax': None, 'location': '', 'task': None, 'messenger': None, 'birthdayCalendarType': None, 'birthday': None, 'hiredDate': None, 'locale': 'ja_JP', 'timeZone': 'Asia/Tokyo', 'customFields': [], 'relations': [], 'userId': 'xxxxxxx', 'isAdministrator': True, 'isPending': False, 'isSuspended': False, 'leaveOfAbsence': {'startTime': None, 'endTime': None, 'isLeaveOfAbsence': False}, 'isDeleted': False, 'suspendedReason': None, 'employmentTypeExternalKey': None, 'employmentTypeName': '利用権限タイプ'}
2023.02.10
업데이트 된 답글입니다.
BONTY 投稿者
ご回答、サンプルコードまでご記載いただきありがとうございました。
返信が遅くなってしまい大変失礼いたしました。
その後、別業務に手を取られており一旦本件から離れておりましたが、本日StackOverflowにてguzzleのデータ取得についての質問/回答をみつけ、記載の通りgetbodyをStringキャストすることで無事データの取得を確認できました。
(すっかりResponseにデータがそのまま入っているものと思い込んでおりました)
お騒がせいたしました。ご対応ありがとうございました。
参考にしたStackoverflow投稿
https://stackoverflow.com/questions/30549226/guzzlehttp-how-get-the-body-of-a-response-from-guzzle-6
2023.02.21
まだ、解決できませんか?
今すぐ実際に使用しているLINE WORKSユーザーに質問してみましょう。