質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

1回答

2904閲覧

PythonでアクセストークンつきHTTPリクエストを行い、ジョブカンWF APIにアクセスする

miimii2007

総合スコア5

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2020/03/17 04:08

前提・実現したいこと

Python 3.8.2を使用し、ジョブカンワークフローの「APIトークンテスト」を行いました。
正常であればステータスコード200が返るはずが、404が返ってきます。

ジョブカンワークフローの問題ではなく、PythonでアクセストークンつきHTTPリクエストを行う方法をわかっていないためかもしれません。
ステータスコード200が返るように、解決のため手掛かりだけでも教えていただけると助かります。

ジョブカンワークフローのトークンは取得済です。
どうぞよろしくお願いいたします。

発生している問題・エラーメッセージ

print(r_get.status_code) 404

該当のソースコード

Python

1import requests 2 3url = 'https://ssl.wf.jobcan.jp/wf_api/' 4 5item_id = 'test/' 6 7token = 'XXXXX' #実際はジョブカンWFのトークンを入力しています 8 9headers = {"Authorization": token} 10 11r_get = requests.get(url + '/' + item_id, headers=headers) 12 13print(r_get.status_code)

試したこと

下記ソースコードでRequestsが動作することを確認しました。

参考にさせていただいたサイト
https://techacademy.jp/magazine/19195

import requests r = requests.get("https://news.yahoo.co.jp/") print(r.text)

補足情報(FW/ツールのバージョンなど)

Python 3.8.2
VSCode 1.43.0

その他参考にさせていただいたサイト

VS CodeでPython環境を整える
https://qiita.com/ayuchiy/items/82d6d2dfcf1acc3bec00

ジョブカンWF API
https://ssl.wf.jobcan.jp/api_doc

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

404 は、 URL が存在しないというエラーです。

また、ジョブカン API のドキュメントを見る限り 404 をかえす API はなさそうですので、通常の not found と思われます。

プログラムコードで、

r_get = requests.get(url + '/' + item_id, headers=headers)

と文字連結で、URL を作られていますが、下記のように requests.get に直接 URL を記載したら どのような結果になるでしょうか?

r_get = requests.get('https://ssl.wf.jobcan.jp/wf_api/test/', headers=headers)

また、ドキュメントに

Authorizationヘッダに以下の形式でアクセストークンを付与し、各APIへのリクエストを行います。
Tokenの前後には半角スペース一つずつを設定してください(「 Token 」としてください)。

Headers
Authorization: Token 管理画面より発行されたAPIトークン

とありますので、Authorization ヘッダに Token キーワードが必要な気もするのですが、何かを参考にしてコードを記載されているのでしょうか?

Authorization ヘッダを規定している Hypertext Transfer Protocol (HTTP/1.1): Authentication - RFC 7235 でも

Authorization: auth-scheme (token68 / auth-params)

となっています。

投稿2020/03/17 12:26

CHERRY

総合スコア25218

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

miimii2007

2020/03/17 13:30 編集

ドキュメントの「Authorization: Token 管理画面より発行されたAPIトークン」を、「Token」の部分を実際のトークンに置き換えるものだと勘違いしていました。 headers = {'Authorization': 'Token XXXXX '} #XXXXXは管理画面より発行されたAPIトークン r_get = requests.get('https://ssl.wf.jobcan.jp/wf_api/test/’, headers=headers) アドバイスをいただいたおかげで、ステータスコード200がかえってきました! 本当に、感謝いたします。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問