認証

API ユーザーがキーの組み合わせ (パブリックキー とプライベートキー) を取得するには、Gengo に予めアカウント登録していることが必要です。 api_key はユーザーの識別に使用され、private_key はAPIを呼び出す際の認証に毎回使用されます。キーの組み合わせは、実質的にユーザー名とパスワードとして機能します。ですから、private_keyは秘密にするようにしてください。

これらのキーは、 アカウント設定ページ から生成や取り出しができます。

毎回の制限された (非公開の) RESTの呼び出しは、以下のようにGengoから認証される必要があります。

呼び出しのサインオン

認証された呼び出しには全て、サインオンが必要になります:

  1. 現在のUNIX時間をInteger (整数型) で取得します

  2. その時間をあなたの引数リストの'ts' キーの値として入れます

  3. そのタイムスタンプのSHA-1ハッシュ値をお持ちのプライベートキーに対して計算します

  4. このハッシュ値を、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)