2011-09-21 39 views

Trả lời

11

Nếu bạn đang tạo ứng dụng Tài khoản dịch vụ để truy cập Google Analytics.

  1. Đăng ký bằng Google qua https://code.google.com/apis/console. Trên tab Truy cập API, nhấp vào Tạo ID ứng dụng khách, chọn Tài khoản dịch vụ. Lưu trữ tệp khóa Google sẽ tạo và nhớ mật khẩu cho khóa đó.
  2. Dưới đây là một số mã để giúp bạn bắt đầu

    require 'rubygems' 
    require 'google/api_client' 
    
    api_client = Google::APIClient.new 
    path_to_key_file ="/path/to/key/file-privatekey.p12" 
    passphrase = "google_generated_password" 
    key = Google::APIClient::PKCS12.load_key(path_to_key_file, passphrase) 
    

Khi một chìa khóa có sẵn, khởi tạo asserter với ID khách hàng của bạn (email trong Bảng điều khiển API) và ủy quyền phạm vi.

asserter = Google::APIClient::JWTAsserter.new(
    '[email protected]com', 
    'https://www.googleapis.com/auth/analytics.readonly', 
    key) 

# To request an access token, call authorize: 
api_client.authorization = asserter.authorize() 
puts api_client.authorization.access_token 

http://code.google.com/p/google-api-ruby-client/wiki/ServiceAccounts

+0

tôi có được điều này: 'Authorization thất bại. Thông báo máy chủ: {"error": "invalid_grant"} '. Tôi đã nghe mọi người nói để thay đổi chế độ cấp quyền thành ngoại tuyến, nhưng có cách nào để làm điều đó từ đá quý ruby ​​không? – NullVoxPopuli

0

Tôi đã trả lời một cái gì đó tương tự như trong một vài bài viết khác tôi thấy rằng là như thế này ... vì thế trong trường hợp có liên quan của nó, ví ruby, sử dụng google-api-client (đối với bất kỳ apis nào của google), có một vài thông tin xác thực khi sử dụng khóa api thay vì OAuth ...

Tôi đã phác thảo quy trình này (sử dụng phía máy chủ khóa api) tại the code abode.

Bạn phải đặt rõ ràng tham số tác giả thành không khi xây dựng máy khách, nếu không, đá quý sẽ cố gắng sử dụng OAuth để xác thực, vì vậy nếu gọi từ máy chủ chỉ sử dụng khóa api, bạn sẽ luôn nhận được 401 trái phép.

the code abode - google-api-client for ruby

Các vấn đề liên quan