LoginSignup
2
2

More than 5 years have passed since last update.

Microsoft Translator テキスト API の使い方 (go)

Last updated at Posted at 2018-02-26

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)

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2