• This repository has been archived on 09/Mar/2019
  • Stars
    star
    163
  • Rank 231,141 (Top 5 %)
  • Language
    Ruby
  • Created over 13 years ago
  • Updated over 7 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Google+ Ruby Gem

GooglePlus

This is a Ruby client library for the Google+ API.

Installation

gem install google_plus

Documentation

Authentication

To make calls to the Google+ API, you have to either authenticate via OAuth or provide an API key (which you can get from the Google APIs Console. To set your API key and get started, use:

GooglePlus.api_key = 'your key'

That key will then be used on all of your requests.

If you want to change it for an individual request, you can use a param, like:

person = GooglePlus::Person.get(123, :key => 'other_key')

If you want to use OAuth for authorization, you can use a method such as OmniAuth's GoogleOAuth2 Strategy to get an access_token, and then set it using:

GooglePlus.access_token = 'token'

If you want to set it for an individual request (or series of requests), you can use a param like above:

person = GooglePlus::Person.get(123, :access_token => 'token')

People

Getting information about a person is easy, given that you have their Google+ ID:

person = GooglePlus::Person.get(123)

Accessing attributes of a GooglePlus::Person object is straightforward, and to keep things nice, all attributes are converted to snake case (so person.displayName becomes person.display_name).

person = GooglePlus::Person.get(123)
person.display_name
person.photos.each do |photo|
  photo.value
end

You can read more about the fields available for a Person in the Person documentation, or you can use the attributes method to get them back as a Hash.

Activities

Exactly the same as people, you can get activities by ID:

activity = GooglePlus::Activity.get(123)

And once you have an activity, you can move back to its person using #person.

People do Things

Lastly, you can get a list of activities for a person, which is returned as a GooglePlus::Cursor. You use it like (which auto-paginates):

person = GooglePlus::Person.get(123)
cursor = person.list_activities
cursor.each do |item|
  item # an item
end

Or if you just want one page, you can have it:

person = GooglePlus::Person.get(123)
activites = person.list_activities.items

You can also set the cursor size at any time using any of these variations:

# on the cursor
cursor = person.list_activities(:max_results => 10)
# or on the page
items = cursor.next_page(:max_results => 5)

Plusoners and Resharers

You can call plusoners and resharers on a GooglePlus::Activity to get a cursor or people that plus one'd or reshared an activity.

Comments

You can get comments for an acitivty, using its ID:

comment = GooglePlus::Comment.get(123)

Accessing attributes of a GooglePlus::Comment object is straightforward, (see: accessing attributes of a GooglePlus::Person). You can find the fields available in the Comment documentation.

Getting comments for an activity is done just like getting activities for a person:

activity = GooglePlus::Activity.get(123)
cursor = activity.list_comments
cursor.each do |item|
  # a comment
end

Searching

You can search for people or activities using the respective search methods, which also yield GooglePlus::Cursor objects. Here's an example:

search = GooglePlus::Person.search('john crepezzi')
search.each do |p|
  puts p.display_name
end

Setting options

On any of these calls, you can provide options like user_ip listed on the docs.

Dependencies

  • rest_client

License

(The MIT License)

Copyright Β© 2011 John Crepezzi

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the β€˜Software’), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED β€˜AS IS’, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

More Repositories

1

easy_translate

Google Translate (with Bulk translate) in Ruby
Ruby
330
star
2

prelude

ActiveRecord custom preloading
Ruby
88
star
3

database_validation

Automatic Rails validations from your database
Ruby
62
star
4

track_history

Smart, performant auditing of ActiveRecord models
Ruby
60
star
5

gotcha

Smart Captcha Automation
Ruby
58
star
6

console_tweet

Simple CLI Twitter Client
Ruby
52
star
7

web

HTTP response caching
Ruby
52
star
8

vain

Check github watchers
Ruby
35
star
9

dotfiles

Shell
31
star
10

php-statsd

simple statsd library and CI spark
PHP
30
star
11

sparks

A package management system for CodeIgniter
PHP
25
star
12

proxy_record

Ruby
22
star
13

flexible_api

Ruby
21
star
14

redis-repeater

Automatically transfer items in queues on one Redis machine to another
Ruby
16
star
15

htmlcov-example

an example for setting up mocha & html-cov
JavaScript
12
star
16

indeed_api

Ruby wrapper for the Indeed Job search API
Ruby
11
star
17

cereal_eyes

CerealEyes is a Ruby serialization library similar to GSON
Ruby
10
star
18

flexible_api_server

Ruby
9
star
19

botsy

Ruby Campfire Bot
Ruby
9
star
20

nice_http

A nice, testable HTTP library for PHP
PHP
8
star
21

delocalize

Automatically pull localized text out into YAML files
Ruby
8
star
22

tweetStream4J

Java bindings for the Twitter Streaming API
Java
7
star
23

talks

5
star
24

plan

simple command-line todo-list manager
Ruby
5
star
25

locale_base

Easy language translation for YAML locale files - and other nested ruby objects
Ruby
5
star
26

weatherbug

Ruby Weatherbug Partner API Wrapper
Ruby
4
star
27

laze

javascript lazy properties
JavaScript
4
star
28

Pretty-Damn-Fancy

Java PDF Brute Force Cracker
Java
4
star
29

coup

online coup board
HTML
4
star
30

php-tweet

Upcoming Twitter Library for PHP
PHP
3
star
31

Open-Stanza

Engine that powers socialstanza.com - a poetry site
Ruby
3
star
32

roflscale

Make everything scale infinitely.
Ruby
3
star
33

gravatar_helper

Simple CodeIgniter Gravatar Helper
PHP
3
star
34

columnizer

Easily put multi-dimensional arrays into columns
Ruby
3
star
35

qr-scanner

JavaScript
3
star
36

my_tunes

Music Library Broadcasting
Ruby
3
star
37

io-statsd

a StatsD client for Io
Io
2
star
38

canvaspong

HTML Canvas Pong
2
star
39

seejohnrun.github.io

CSS
2
star
40

iou

Io
1
star
41

git-help

1
star
42

quick_short

Short URL library with some special tricks
Ruby
1
star
43

governor

JavaScript
1
star
44

view_something

Easily use SQL views alongside ActiveRecord
Ruby
1
star
45

restful_documentation

Ruby
1
star
46

settings

simple javascript settings object
JavaScript
1
star
47

john-spark

1
star
48

succeed

JavaScript
1
star
49

rstack

Ruby Stack Overflow API Wrapper
Ruby
1
star
50

shell_command

shell_command tries to provide a better interface for communicating with commands you spawn on the shell.
Ruby
1
star
51

socktalk

socket.io-proxy
JavaScript
1
star
52

dependable

Dependable Dependency Calculation
Ruby
1
star
53

refined_colors

simple CLI colors via refinements
Ruby
1
star
54

iolog

A small logging library for Io
Io
1
star
55

likewise

Ruby
1
star