2012-07-25 83 views

回答

3

不幸的是,我们还没有准备AdSense Management API的任何代码示例里!正如你指出,虽然客户端库是通用的,应该与任何新的谷歌的API的工作,所以其他一些样品中可能会有帮助。

如果你正在运行到任何具体问题,请创建专注于那些问题,指出我的话,我会尽我所能来帮助。

如果您想要快速入门,我可以为您做好准备,但我们应确保您遇到的问题与AdSense Management API本身有关,而不仅仅是客户端库,就像你连接的那个一样。

[编辑] 这里有一个快速的样品,根据西纳特拉:

#!/usr/bin/ruby 
require 'rubygems' 
require 'sinatra' 
require 'google/api_client' 

FILENAME = 'auth.obj' 
OAUTH_CLIENT_ID = 'INSERT_OAUTH2_CLIENT_ID_HERE' 
OAUTH_CLIENT_SECRET = 'INSERT_OAUTH2_CLIENT_SECRET_HERE' 

before do 
    @client = Google::APIClient.new 
    @client.authorization.client_id = OAUTH_CLIENT_ID 
    @client.authorization.client_secret = OAUTH_CLIENT_SECRET 
    @client.authorization.scope = 'https://www.googleapis.com/auth/adsense' 
    @client.authorization.redirect_uri = to('/oauth2callback') 
    @client.authorization.code = params[:code] if params[:code] 

    # Load the access token here if it's available 
    if File.exist?(FILENAME) 
    serialized_auth = IO.read(FILENAME) 
    @client.authorization = Marshal::load(serialized_auth) 
    end 
    if @client.authorization.refresh_token && @client.authorization.expired? 
    @client.authorization.fetch_access_token! 
    end 
    @adsense = @client.discovered_api('adsense', 'v1.1') 
    unless @client.authorization.access_token || request.path_info =~ /^\/oauth2/ 
    redirect to('/oauth2authorize') 
    end 
end 

get '/oauth2authorize' do 
    redirect @client.authorization.authorization_uri.to_s, 303 
end 

get '/oauth2callback' do 
    @client.authorization.fetch_access_token! 
    # Persist the token here 
    serialized_auth = Marshal::dump(@client.authorization) 
    File.open(FILENAME, 'w') do |f| 
    f.write(serialized_auth) 
    end 
    redirect to('/') 
end 

get '/' do 

    call = { 
    :api_method => @adsense.reports.generate, 
    :parameters => { 
     'startDate' => '2011-01-01', 
     'endDate' => '2011-08-31', 
     'dimension' => ['MONTH', 'CUSTOM_CHANNEL_NAME'], 
     'metric' => ['EARNINGS', 'TOTAL_EARNINGS'] 
    } 
    } 

    response = @client.execute(call) 
    output = '' 

    if response && response.data && response.data['rows'] && 
     !response.data['rows'].empty? 
    result = response.data 

    output << '<table><tr>' 
    result['headers'].each do |header| 
     output << '<td>%s</td>' % header['name'] 
    end 
    output << '</tr>' 

    result['rows'].each do |row| 
     output << '<tr>' 
     row.each do |column| 
     output << '<td>%s</td>' % column 
     end 
     output << '</tr>' 
    end 

    output << '</table>' 
    else 
    output << 'No rows returned' 
    end 

    output 
end 
+0

嗨塞尔吉奥。我认为我现在面临的问题是法拉第冲突。不过,我会真的** **赞赏我怎么能使用AdSense API通过渠道来获取所有个人收入总额的任何指导的代码。有没有可能向我展示如何开始? – 2012-07-26 09:56:09

+2

向响应添加了一个示例。 – 2012-07-26 11:48:46

+0

非常感谢塞尔吉奥。我不想给你一个约会,但是有没有关于Rails例子的粗略估计? – 2012-07-26 19:09:10

相关问题