Microsoft Translator テキスト API の使用例です。
日本語から、ドイツ語への翻訳です。
translation.go
// ------------------------------------------------------------------
//
// main_get_token.go
//
// Feb/26/2018
//
// ------------------------------------------------------------------
package main
import (
"fmt"
"os"
"log"
"io/ioutil"
"net/http"
)
// ------------------------------------------------------------------
func translate_proc(token string,text_in string) string {
rvalue := ""
url_bb := "https://api.microsofttranslator.com/v2/http.svc/Translate?text="
url_bb += text_in + "&to=de" + "&category=generalnn"
req, _ := http.NewRequest("GET", url_bb, nil)
req.Header.Set("Authorization", "Bearer " + token)
client := new(http.Client)
resp, err := client.Do(req)
if err != nil {
log.Fatalln(err)
fmt.Printf("%s", err)
os.Exit(1)
} else {
defer resp.Body.Close()
contents, err := ioutil.ReadAll(resp.Body)
if err != nil {
fmt.Printf("%s", err)
os.Exit(1)
}
rvalue := string(contents)
fmt.Printf("%s\n", rvalue)
}
return rvalue
}
// ------------------------------------------------------------------
func main() {
fmt.Fprintf (os.Stderr,"*** 開始 ***\n")
token := get_token_proc ()
// fmt.Fprintf(os.Stderr,"%s\n", token)
text_in := "今日はいい天気です。"
fmt.Printf ("%s\n",text_in)
result := translate_proc(token,text_in)
fmt.Printf ("%s\n",result)
fmt.Fprintf (os.Stderr,"*** 終了 ***\n")
}
// ------------------------------------------------------------------
get_token.go
// ----------------------------------------------------------------
/*
get_token.go
Feb/26/2018
*/
// ----------------------------------------------------------------
package main
import (
"fmt"
"os"
"log"
"io/ioutil"
"net/http"
)
// ----------------------------------------------------------------
func get_token_proc () string {
token := ""
key1 := "e968e25ffc2146f00000000000000aaa"
url := "https://api.cognitive.microsoft.com/sts/v1.0/issueToken"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Set("Ocp-Apim-Subscription-Key", key1)
client := new(http.Client)
resp, err := client.Do(req)
if err != nil {
log.Fatalln(err)
fmt.Printf("%s", err)
os.Exit(1)
} else {
defer resp.Body.Close()
contents, err := ioutil.ReadAll(resp.Body)
if err != nil {
fmt.Printf("%s", err)
os.Exit(1)
}
token = string(contents)
// fmt.Printf("%s\n", token)
}
return token
}
// ----------------------------------------------------------------
Makefile
translation: translation.go get_token.go
go build translation.go get_token.go
clean:
rm -f translation
python3 の例はこちら
Microsoft Translator テキスト API の使い方 (python3)