認証¶
API ユーザーがキーの組み合わせ (パブリックキー とプライベートキー) を取得するには、Gengo に予めアカウント登録していることが必要です。 api_key
はユーザーの識別に使用され、private_key
はAPIを呼び出す際の認証に毎回使用されます。キーの組み合わせは、実質的にユーザー名とパスワードとして機能します。ですから、private_keyは秘密にするようにしてください。
これらのキーは、 アカウント設定ページ から生成や取り出しができます。
毎回の制限された (非公開の) RESTの呼び出しは、以下のようにGengoから認証される必要があります。
呼び出しのサインオン¶
認証された呼び出しには全て、サインオンが必要になります:
現在のUNIX時間をInteger (整数型) で取得します
その時間をあなたの引数リストの'ts' キーの値として入れます
そのタイムスタンプのSHA-1ハッシュ値をお持ちのプライベートキーに対して計算します
このハッシュ値を、api_sigというパラメータとして引数リストに加えます
APIでの認証された呼び出しの例¶
1#!/usr/bin/python
2# -*- coding: utf-8 -*-
3
4from hashlib import sha1
5import hmac
6import json
7import requests
8import time
9
10if __name__ == '__main__':
11 PUBLIC_KEY = 'your public key'
12 PRIVATE_KEY = 'your private key'
13
14 # submit a comment for job ID 20
15 JOB_ID = '20'
16 COMMENT = 'Please use British spelling'
17 URL = "http://api.gengo.com/v2/translate/job/{0}/comment".format(JOB_ID)
18 header = {"Accept": "application/json"}
19
20 data = {
21 # 'data' must be flattened. We use json.dumps()
22 "data": json.dumps({"body": COMMENT}, separators=(',', ':')),
23 "api_key": PUBLIC_KEY,
24 "ts": str(int(time.time()))
25 }
26
27 # use your private_key to create an hmac
28 data["api_sig"] = hmac.new(
29 PRIVATE_KEY,
30 data["ts"],
31 sha1
32 ).hexdigest()
33
34 post_comment = requests.post(URL, data=data, headers=header)
35 res_json = json.loads(post_comment.text)
36
37 if not res_json["opstat"] != "ok":
38 msg = "API error occured.\nerror msg: {0}".format(
39 res_json["err"]
40 )
41 raise AssertionError(msg)
42 else:
43 print(res_json)