Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Google API Ruby client for Rails 2.X

License

NotificationsYou must be signed in to change notification settings

mchristopher/google-api-ruby-client

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Homepage
http://code.google.com/p/google-api-ruby-client
Authors
Bob Aman,Steven Bazyl
Copyright
Copyright © 2011 Google, Inc.
License
Apache 2.0

Build StatusDependency Status

Description

The Google API Ruby Client makes it trivial to discover and access supportedAPIs.

Install

Be surehttp://rubygems.org/ is in your gem sources.

For normal client usage, this is sufficient:

$ sudo gem install google-api-client

The command line interface, the example applications, and the test suiterequire additional dependencies. These may be obtained with:

$ sudo gem install google-api-client --development --force --no-rdoc --no-ri

Example Usage

# Initialize the client & Google+ APIrequire 'google/api_client'client = Google::APIClient.newplus = client.discovered_api('plus')# Initialize OAuth 2.0 client    client.authorization.client_id = '<CLIENT_ID_FROM_API_CONSOLE>'client.authorization.client_secret = '<CLIENT_SECRET>'client.authorization.redirect_uri = '<YOUR_REDIRECT_URI>'client.authorization.scope = 'https://www.googleapis.com/auth/plus.me'# Request authorizationredirect_uri = client.authorization.authorization_uri# Wait for authorization code then exchange for tokenclient.authorization.code = '....'client.authorization.fetch_access_token!# Make an API callresult = client.execute(  :api_method => plus.activities.list,  :parameters => {'collection' => 'public', 'userId' => 'me'})puts result.data

API Features

API Discovery

To take full advantage of the client, load API definitions prior to use. To load an API:

urlshortener = client.discovered_api('urlshortener')

Specific versions of the API can be loaded as well:

drive = client.discovered_api('drive', 'v2')

Locally cached discovery documents may be used as well. To load an API from a local file:

doc = File.read('my-api.json')my_api = client.register_discovery_document('myapi', 'v1', doc)

Authorization

Most interactions with Google APIs require users to authorize applications via OAuth 2.0. The client library usesSignet to handle most aspects of authorization. For additional details about Google's OAuth support, seeGoogle Developers.

Credentials can be managed at the connection level, as shown, or supplied on a per-request basis when callingexecute.

For server-to-server interactions, like those between a web application and Google Cloud Storage, Prediction, or BigQuery APIs, use service accounts.

key = Google::APIClient::KeyUtils.load_from_pkcs12('client.p12', 'notasecret')client.authorization = Signet::OAuth2::Client.new(  :token_credential_uri => 'https://accounts.google.com/o/oauth2/token',  :audience => 'https://accounts.google.com/o/oauth2/token',  :scope => 'https://www.googleapis.com/auth/prediction',  :issuer => '123456-abcdef@developer.gserviceaccount.com',  :signing_key => key)client.authorization.fetch_access_token!client.execute(...)

Batching Requests

Some Google APIs support batching requests into a single HTTP request. UseGoogle::APIClient::BatchRequestto bundle multiple requests together.

Example:

client = Google::APIClient.newurlshortener = client.discovered_api('urlshortner')batch = Google::APIClient::BatchRequest.new do |result|    puts result.dataendbatch.add(:api_method => urlshortener.url.insert,           :body_object => { 'longUrl' => 'http://example.com/foo' })batch.add(:api_method => urlshortener.url.insert,           :body_object => { 'longUrl' => 'http://example.com/bar' })client.execute(batch)

Blocks for handling responses can be specified either at the batch level or when adding an individual API call. For example:

batch.add(:api_method=>urlshortener.url.insert, :body_object => { 'longUrl' => 'http://example.com/bar' }) do |result|   puts result.dataend

Media Upload

For APIs that support file uploads, useGoogle::APIClient::UploadIO to load the stream. Both multipart and resumableuploads can be used. For example, to upload a file to Google Drive using multipart

drive = client.discovered_api('drive', 'v2')media = Google::APIClient::UploadIO.new('mymovie.m4v', 'video/mp4')metadata = {    'title' => 'My movie',    'description' => 'The best home movie ever made'}client.execute(:api_method => drive.files.insert,               :parameters => { 'uploadType' => 'multipart' },               :body_object => metadata,               :media => media )

To use resumable uploads, change theuploadType parameter toresumable. To check the status of the uploadand continue if necessary, checkresult.resumable_upload.

client.execute(:api_method => drive.files.insert,           :parameters => { 'uploadType' => 'resumable' },           :body_object => metadata,           :media => media )upload = result.resumable_upload# Resume if neededif upload.resumable?    client.execute(upload)end

Command Line

Included with the gem is a command line interface for working with Google APIs.

# Log ingoogle-api oauth-2-login --client-id='...' --client-secret='...' --scope="https://www.googleapis.com/auth/plus.me"# List the signed-in user's activitiesgoogle-api execute plus.activities.list --api=plus -- userId="me" collection="public"# Start an interactive API sessiongoogle-api irb>> plus = $client.discovered_api('plus')>> $client.execute(plus.activities.list, {'userId' => 'me', 'collection' => 'public'})=> # returns a response from the API

For more information, usegoogle-api --help

Samples

See the full list ofsamples on Google Code.

Support

Pleasereport bugs at the project on Google Code. Don't hesitate toask questions about the client or APIs onStackOverflow.

About

Google API Ruby client for Rails 2.X

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages


[8]ページ先頭

©2009-2025 Movatter.jp