前提
使うもの
PORTERS(ポーターズ)という採用システム
GAS GoogleAppsScript
実現したいこと
- APIを用いてPORTERSへの求人情報登録を自動化する
この場で解決したいこと
- XML形式のデータをPOSTする方法が知りたい
- 現状PythonではうまくPOSTできるのにGASではできないため、GAS用の書き方が間違っているのではないかと考えている
発生している問題・エラーメッセージ
- 同じPOSTリクエストをPythonで行うとできるのに、
GASで行うと103エラー※が出てしまう
該当のソースコード
GAS版
function postJob() { var token = getToken()//tokenを取得するスクリプト。正しいトークンが取れていることは確認済みです var url = "https://api-hrbc-jp.porterscloud.com/v1/job?partition="+partitionId //partition idはPORTERSに登録している企業が所持しているユニークな4桁の数値。これも間違いがないことを確認済み var data = '<?xml version="1.0" encoding="UTF-8" standalone="yes"?><Job><Item><Job.P_Id>-1</Job.P_Id><Job.P_Owner>1</Job.P_Owner><Job.P_Client>10004</Job.P_Client><Job.P_Recruiter>10004</Job.P_Recruiter><Job.P_Position>testJob</Job.P_Position></Item></Job>' var header = { 'X-porters-hrbc-oauth-token': token, 'Content-Type':'application/xml; charset=UTF-8' } console.log(header) var option = { "method": "post", "body": data ,//body部分をdata payloadにもしてみたが駄目 "headers": header } console.log(option) var res = UrlFetchApp.fetch( url, option ) var response_xml = res.getContentText() console.log(response_xml) }
本来であれば「<Code>0</Code>」(=成功)が返ってくるはずだが、「<Code>103</Code>」になる
具体的には
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><Job><Code>103</Code></Job>
Python版<-こっちだとうまくいく
data = '<?xml version="1.0" encoding="UTF-8" standalone="yes"?><Job><Item><Job.P_Id>-1</Job.P_Id><Job.P_Owner>1</Job.P_Owner><Job.P_Client>10004</Job.P_Client><Job.P_Recruiter>10004</Job.P_Recruiter><Job.P_Position>testJob</Job.P_Position></Item></Job>' req = requests.post('https://api-hrbc-jp.porterscloud.com/v1/job?partition=9999', data=data.encode('utf-8'), headers={ 'X-porters-hrbc-oauth-token': token, 'Content-Type':'application/xml' }) req.text
結果として下記のように帰ってきて、Code 0=成功。Id 10020=Idが10020の求人が新規作成されたことがしめされている
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><Job><Item><Id>10020</Id><Code>0</Code></Item></Job>
その他試したこと
- GETはできる?
- できる
- ほかの情報のPOSTはできる?
- できない
補足情報
- PORTERSのAPIの説明(POSTの方法について)
https://hrbcapi.porters.jp/hc/ja/articles/115012160448-Job-Write
- PORTERSのAPIの説明(エラーコード一覧)
https://hrbcapi.porters.jp/hc/ja/articles/115008171708-Result-Code-List
- ※PORTERS社からの情報で、GASで直接APIをたたくと不具合が起きることを伝えられています。実行ボタンを直接押すのではなく、トリガー起動することで回避できるらしいのでその方法で実行しました。
- PythonはGoogleColabを用いています
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。