Ruby实时谷歌分析API

我试图通过google-api-ruby-client获得activeVisitors。 客户端在此处列出了实时谷歌分析API文档,但我在文档中没有看到任何关于将其用于实时API的文档。

我看到函数discovered_api但是我没有看到API名称的posisble参数列表。

常规分析API示例:

# Get the analytics API analytics = client.discovered_api('analytics','v3') 

有谁知道如何使用此客户端来获得实时活跃的访问者?

这是我尝试使用的代码:

 require 'google/api_client' require 'date' # Update these to match your own apps credentials service_account_email = 'xxxxxxxxxxxxx@developer.gserviceaccount.com' # Email of service account key_file = '/path/to/key/privatekey.p12' # File containing your private key key_secret = 'notasecret' # Password to unlock private key profileID = '111111111' # Analytics profile ID. # Get the Google API client client = Google::APIClient.new(:application_name => '[YOUR APPLICATION NAME]', :application_version => '0.01') # Load your credentials for the service account key = Google::APIClient::KeyUtils.load_from_pkcs12(key_file, key_secret) 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/analytics.readonly', :issuer => service_account_email, :signing_key => key) # Start the scheduler SCHEDULER.every '1m', :first_in => 0 do # Request a token for our service account client.authorization.fetch_access_token! # Get the analytics API analytics = client.discovered_api('analytics','v3') # Execute the query visitCount = client.execute(:api_method => analytics.data.ga.get, :parameters => { 'ids' => "ga:" + profileID, 'metrics' => "ga:activeVisitors", }) # Update the dashboard send_event('current_visitors', { current: visitCount.data.rows[0][0] }) end 

返回错误:

 Missing required parameters: end-date, start-date. 

假设ruby客户端lib使用发现服务并且该方法实际可用,而不是:

 visitCount = client.execute(:api_method => analytics.data.ga.get, :parameters => { 'ids' => "ga:" + profileID, 'metrics' => "ga:activeVisitors", 

试试这个(在api_method中将ga改为实时):

 visitCount = client.execute(:api_method => analytics.data.realtime.get, :parameters => { 'ids' => "ga:" + profileID, 'metrics' => "ga:activeVisitors", 

如果您是实时报告产品论坛的成员,此post可能会有所帮助 – https://groups.google.com/forum/m/#!topic/google-analytics-realtime-api/zgAsKFBenV8

你可以试试……

analytics = client.discovered_api(’realtime’,’v3’)

或者实时,或者没有v3。

如果可行的话也会更新你的get方法。

希望我可以提供更多帮助,但绝对没有相关文档。