Я покопался в коде клиента и нашел пару вариантов.
Сначала вы можете создать клиент API, который будет выполнять все запросы без маркера доступа.Конструктор, вероятно, немного более агрессивен, чем следует указывать по умолчанию.Чтобы обойти это, вы можете обнулить метод аутентификации после того, как вы создали клиент.Ваш код будет выглядеть следующим образом:
require 'rubygems'
require 'google/api_client'
require 'httpadapter/adapters/net_http'
@client = Google::APIClient.new(
:key => 'SOME_KEY',
:host => 'www.googleapis.com',
:http_adapter => HTTPAdapter::NetHTTPAdapter.new,
:pretty_print => false
)
@client.authorization = nil
@plus = @client.discovered_api('plus', 'v1')
status, headers, body = @client.execute(
@plus.people.list_by_activity,
'activityId' => 'z12nspyxxufislit423eex442zqpdtqnk',
'collection' => 'plusoners',
'maxResults' => '100'
)
public_activity = JSON.parse(body[0])
Кроме того, вы можете переопределить метод аутентификации для каждого запроса.Вы были довольно близко к этому!У вас был правильный вариант, вам просто нужно передать его в качестве последнего аргумента, например:
require 'rubygems'
require 'google/api_client'
require 'httpadapter/adapters/net_http'
@client = Google::APIClient.new(
:key => 'SOME_KEY',
:host => 'www.googleapis.com',
:http_adapter => HTTPAdapter::NetHTTPAdapter.new,
:pretty_print => false
)
@plus = @client.discovered_api('plus', 'v1')
status, headers, body = @client.execute(
@plus.people.list_by_activity,
{'activityId' => 'z12nspyxxufislit423eex442zqpdtqnk',
'collection' => 'plusoners',
'maxResults' => '100'}, '', [], {:authenticated => false}
)
puts status
puts body
public_activity = JSON.parse(body[0])
Спасибо Аллену за то, что он привлек мое внимание в Google+:)