Skip to content

Commit 9cd5601

Browse files
committed
Merge pull request googleapis#49 from dillonkearns/patch-1
Add syntax highlighting to README
2 parents cc69b49 + ed0a892 commit 9cd5601

File tree

1 file changed

+97
-79
lines changed

1 file changed

+97
-79
lines changed

README.md

Lines changed: 97 additions & 79 deletions
Original file line numberDiff line numberDiff line change
@@ -21,53 +21,63 @@ Be sure `http://rubygems.org/` is in your gem sources.
2121

2222
For normal client usage, this is sufficient:
2323

24-
$ gem install google-api-client
24+
```bash
25+
$ gem install google-api-client
26+
```
2527

2628
## Example Usage
2729

28-
# Initialize the client & Google+ API
29-
require 'google/api_client'
30-
client = Google::APIClient.new
31-
plus = client.discovered_api('plus')
30+
```ruby
31+
# Initialize the client & Google+ API
32+
require 'google/api_client'
33+
client = Google::APIClient.new
34+
plus = client.discovered_api('plus')
3235

33-
# Initialize OAuth 2.0 client
34-
client.authorization.client_id = '<CLIENT_ID_FROM_API_CONSOLE>'
35-
client.authorization.client_secret = '<CLIENT_SECRET>'
36-
client.authorization.redirect_uri = '<YOUR_REDIRECT_URI>'
36+
# Initialize OAuth 2.0 client
37+
client.authorization.client_id = '<CLIENT_ID_FROM_API_CONSOLE>'
38+
client.authorization.client_secret = '<CLIENT_SECRET>'
39+
client.authorization.redirect_uri = '<YOUR_REDIRECT_URI>'
3740

38-
client.authorization.scope = 'https://www.googleapis.com/auth/plus.me'
41+
client.authorization.scope = 'https://www.googleapis.com/auth/plus.me'
3942

40-
# Request authorization
41-
redirect_uri = client.authorization.authorization_uri
43+
# Request authorization
44+
redirect_uri = client.authorization.authorization_uri
4245

43-
# Wait for authorization code then exchange for token
44-
client.authorization.code = '....'
45-
client.authorization.fetch_access_token!
46+
# Wait for authorization code then exchange for token
47+
client.authorization.code = '....'
48+
client.authorization.fetch_access_token!
4649

47-
# Make an API call
48-
result = client.execute(
49-
:api_method => plus.activities.list,
50-
:parameters => {'collection' => 'public', 'userId' => 'me'}
51-
)
50+
# Make an API call
51+
result = client.execute(
52+
:api_method => plus.activities.list,
53+
:parameters => {'collection' => 'public', 'userId' => 'me'}
54+
)
5255

53-
puts result.data
56+
puts result.data
57+
```
5458

5559
## API Features
5660

5761
### API Discovery
5862

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

61-
urlshortener = client.discovered_api('urlshortener')
65+
```ruby
66+
urlshortener = client.discovered_api('urlshortener')
67+
```
6268

6369
Specific versions of the API can be loaded as well:
6470

65-
drive = client.discovered_api('drive', 'v2')
71+
```ruby
72+
drive = client.discovered_api('drive', 'v2')
73+
```
6674

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

69-
doc = File.read('my-api.json')
70-
my_api = client.register_discovery_document('myapi', 'v1', doc)
77+
```ruby
78+
doc = File.read('my-api.json')
79+
my_api = client.register_discovery_document('myapi', 'v1', doc)
80+
```
7181

7282
### Authorization
7383

@@ -77,16 +87,17 @@ Credentials can be managed at the connection level, as shown, or supplied on a p
7787

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

80-
key = Google::APIClient::KeyUtils.load_from_pkcs12('client.p12', 'notasecret')
81-
client.authorization = Signet::OAuth2::Client.new(
82-
:token_credential_uri => 'https://accounts.google.com/o/oauth2/token',
83-
:audience => 'https://accounts.google.com/o/oauth2/token',
84-
:scope => 'https://www.googleapis.com/auth/prediction',
85-
:issuer => '123456-abcdef@developer.gserviceaccount.com',
86-
:signing_key => key)
87-
client.authorization.fetch_access_token!
88-
client.execute(...)
89-
90+
```ruby
91+
key = Google::APIClient::KeyUtils.load_from_pkcs12('client.p12', 'notasecret')
92+
client.authorization = Signet::OAuth2::Client.new(
93+
:token_credential_uri => 'https://accounts.google.com/o/oauth2/token',
94+
:audience => 'https://accounts.google.com/o/oauth2/token',
95+
:scope => 'https://www.googleapis.com/auth/prediction',
96+
:issuer => '123456-abcdef@developer.gserviceaccount.com',
97+
:signing_key => key)
98+
client.authorization.fetch_access_token!
99+
client.execute(...)
100+
```
90101

91102
### Batching Requests
92103

@@ -95,71 +106,81 @@ to bundle multiple requests together.
95106

96107
Example:
97108

98-
client = Google::APIClient.new
99-
urlshortener = client.discovered_api('urlshortner')
109+
```ruby
110+
client = Google::APIClient.new
111+
urlshortener = client.discovered_api('urlshortner')
100112

101-
batch = Google::APIClient::BatchRequest.new do |result|
102-
puts result.data
103-
end
113+
batch = Google::APIClient::BatchRequest.new do |result|
114+
puts result.data
115+
end
104116

105-
batch.add(:api_method => urlshortener.url.insert,
106-
:body_object => { 'longUrl' => 'http://example.com/foo' })
107-
batch.add(:api_method => urlshortener.url.insert,
108-
:body_object => { 'longUrl' => 'http://example.com/bar' })
109-
client.execute(batch)
117+
batch.add(:api_method => urlshortener.url.insert,
118+
:body_object => { 'longUrl' => 'http://example.com/foo' })
119+
batch.add(:api_method => urlshortener.url.insert,
120+
:body_object => { 'longUrl' => 'http://example.com/bar' })
121+
client.execute(batch)
122+
```
110123

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

113-
batch.add(:api_method=>urlshortener.url.insert, :body_object => { 'longUrl' => 'http://example.com/bar' }) do |result|
114-
puts result.data
115-
end
126+
```ruby
127+
batch.add(:api_method=>urlshortener.url.insert, :body_object => { 'longUrl' => 'http://example.com/bar' }) do |result|
128+
puts result.data
129+
end
130+
```
116131

117132
### Media Upload
118133

119134
For APIs that support file uploads, use `Google::APIClient::UploadIO` to load the stream. Both multipart and resumable
120135
uploads can be used. For example, to upload a file to Google Drive using multipart
121136

122-
drive = client.discovered_api('drive', 'v2')
137+
```ruby
138+
drive = client.discovered_api('drive', 'v2')
123139

124-
media = Google::APIClient::UploadIO.new('mymovie.m4v', 'video/mp4')
125-
metadata = {
126-
'title' => 'My movie',
127-
'description' => 'The best home movie ever made'
128-
}
129-
client.execute(:api_method => drive.files.insert,
130-
:parameters => { 'uploadType' => 'multipart' },
131-
:body_object => metadata,
132-
:media => media )
140+
media = Google::APIClient::UploadIO.new('mymovie.m4v', 'video/mp4')
141+
metadata = {
142+
'title' => 'My movie',
143+
'description' => 'The best home movie ever made'
144+
}
145+
client.execute(:api_method => drive.files.insert,
146+
:parameters => { 'uploadType' => 'multipart' },
147+
:body_object => metadata,
148+
:media => media )
149+
```
133150

134151
To use resumable uploads, change the `uploadType` parameter to `resumable`. To check the status of the upload
135152
and continue if necessary, check `result.resumable_upload`.
136153

137-
client.execute(:api_method => drive.files.insert,
138-
:parameters => { 'uploadType' => 'resumable' },
139-
:body_object => metadata,
140-
:media => media )
141-
upload = result.resumable_upload
154+
```ruby
155+
client.execute(:api_method => drive.files.insert,
156+
:parameters => { 'uploadType' => 'resumable' },
157+
:body_object => metadata,
158+
:media => media )
159+
upload = result.resumable_upload
142160

143-
# Resume if needed
144-
if upload.resumable?
145-
client.execute(upload)
146-
end
161+
# Resume if needed
162+
if upload.resumable?
163+
client.execute(upload)
164+
end
165+
```
147166

148167
## Command Line
149168

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

152-
# Log in
153-
google-api oauth-2-login --client-id='...' --client-secret='...' --scope="https://www.googleapis.com/auth/plus.me"
171+
```bash
172+
# Log in
173+
google-api oauth-2-login --client-id='...' --client-secret='...' --scope="https://www.googleapis.com/auth/plus.me"
154174

155-
# List the signed-in user's activities
156-
google-api execute plus.activities.list --api=plus -- userId="me" collection="public"
175+
# List the signed-in user's activities
176+
google-api execute plus.activities.list --api=plus -- userId="me" collection="public"
157177

158-
# Start an interactive API session
159-
google-api irb
160-
>> plus = $client.discovered_api('plus')
161-
>> $client.execute(plus.activities.list, {'userId' => 'me', 'collection' => 'public'})
162-
=> # returns a response from the API
178+
# Start an interactive API session
179+
google-api irb
180+
>> plus = $client.discovered_api('plus')
181+
>> $client.execute(plus.activities.list, {'userId' => 'me', 'collection' => 'public'})
182+
=> # returns a response from the API
183+
```
163184

164185
For more information, use `google-api --help`
165186

@@ -171,6 +192,3 @@ See the full list of [samples on Google Code](http://code.google.com/p/google-ap
171192
## Support
172193

173194
Please [report bugs at the project on Google Code](http://code.google.com/p/google-api-ruby-client/issues/entry). Don't hesitate to [ask questions](http://stackoverflow.com/questions/tagged/google-api-ruby-client) about the client or APIs on [StackOverflow](http://stackoverflow.com).
174-
175-
176-

0 commit comments

Comments
 (0)