GAE에서 CloudVisionAPI를 사용하면 놀랍게도 쉬웠습니다 (golang)
7708 단어 5GAECloudVisionAPI
자격 증명을 추가하려고 하면
과연, GAE, GCE내라면 인증할 필요가 없는가.
Golang이니까 go get해서 import한다.
"golang.org/x/oauth2/google"
"golang.org/x/net/context"
GCE, GAE 밖이라면 Json 파일을 읽어 OAuth2의 허가를 부여한 HTTP 클라이언트를 만들지 않으면 안되지만, GCE, GAE 내라면 google.DefaultClient로 좋은 것 같다.
// cはGAEのコンテキスト
client, err := google.DefaultClient(c, vision.CloudPlatformScope)
실제 요청을 보내는 func 전체. (이번에는 LABEL_DETECTION)
func RequestVisionApi(c context.Context,imgData []byte) (string ,error) {
enc := base64.StdEncoding.EncodeToString(imgData)
img := &vision.Image{Content: enc}
feature := &vision.Feature{
Type: "LABEL_DETECTION",
MaxResults: 10,
}
req := &vision.AnnotateImageRequest{
Image: img,
Features: []*vision.Feature{feature},
}
batch := &vision.BatchAnnotateImagesRequest{
Requests: []*vision.AnnotateImageRequest{req},
}
client, err := google.DefaultClient(c, vision.CloudPlatformScope)
if err != nil {
return "", err
}
service, err := vision.New(client)
res, err := service.Images.Annotate(batch).Do()
if err != nil {
return "", err
}
// てきとーに使いたい形に整形する。
s := ""
for _,annotation := range res.Responses[0].LabelAnnotations {
s = fmt.Sprintf("%s\n%s:%d%",s ,annotation.Description, int(annotation.Score * 100.0))
}
s = strings.TrimPrefix(s, "\n")
return s, nil
}
사용해 보았습니다.
하야리의 LINE Bot에서 사용하면 이런 느낌.
좋아, 카레야.
Reference
이 문제에 관하여(GAE에서 CloudVisionAPI를 사용하면 놀랍게도 쉬웠습니다 (golang)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/sun_bacon/items/92368c20591ce19d3b1e
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(GAE에서 CloudVisionAPI를 사용하면 놀랍게도 쉬웠습니다 (golang)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/sun_bacon/items/92368c20591ce19d3b1e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)