2013-10-14 5 views
0

im пытается реализовать приложение Golang для доступа к данным Google Analytics. но все примеры используют токены, которые умирают в течение одного часа. В доступе api я нашел «доступ к сертификату», который предназначен для использования с серверами, но я не смог найти примеры его реализации в Голанге. есть некоторые чтения или вы можете просветить мой путь для этого?Сервер к серверу oauth2

im используя эта библиотека. code.google.com/p/google-api-go-client/

чтения некоторого поста здесь я нашел этот Service Applications and Google Analytics API V3: Server-to-server OAuth2 authentication?

но мне кажется, что это не будет работать напрямую. на самом деле не способ сделать это без взлома?

ответ

1

Вы проверили пакет OAuth2? Я использовал его для разрешенных пользователем вызовов и немного взломал его, чтобы он мог обрабатывать несколько источников полномочий.

Я не тестировал его с чисто порт связи сервер-сервер, но вы должны быть в состоянии взломать транспортный код, чтобы заставить его делать то, что ему нужно ...

+0

Внутри goauth2/oauth/jwt был использован код. благодаря – Freaktor

0

это может быть немного поздно, но Я havent нашел хороший пример, чтобы люди начали.

Перед началом убедитесь, что вы

установить golang 1,5

установить Google облако SDK (cloud.google.com/sdk - это позволит местному развитию)

Создание службы учетной записи в консоли Google appengine/cloud и загрузите json (API и auth> Учетные данные)

После того, Пуск в эксплуатацию:

установить путь учетные данные безопасности, которые вы загрузили ранее

экспорт GOOGLE_APPLICATION_CREDENTIALS = ~/каталог/CREDENTIALS.json

теперь вы можете проверить подлинность с ходу.

package main 

import (
    "fmt" 
    "golang.org/x/net/context" 
    "golang.org/x/oauth2/google" 
    analytics "google.golang.org/api/analytics/v3" 
) 

var (
    scope = analytics.AnalyticsReadonlyScope 
) 

func main() { 
    // Authentication is provided by the gcloud tool when running locally, and 
    // by the associated service account when running on Compute Engine. 
    client, err := google.DefaultClient(context.Background(), scope) 
    if err != nil { 
     fmt.Printf("Unable to get default client: %v", err) 
    } 

    service, err := analytics.New(client) 
    if err != nil { 
     fmt.Printf("Unable to create storage service: %v", err) 
    } 

    fmt.Println(service) 
} 
Смежные вопросы