You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
What steps will reproduce the problem?
1. Run the sample code to create a file on drive
2. Generates a
3.
What is the expected output? What do you see instead?
When I ran it as-provided I get this:
/Users/jtosey/.rbenv/versions/1.9.3-p385/lib/ruby/gems/1.9.1/gems/multipart-post
-1.2.0/lib/composite_io.rb:85:in `initialize': No such file or directory -
document.txt (Errno::ENOENT)
I realized it was not properly creating a document from its in-memory data
structure so I created one in my home directory, and ran it again:
$ cat document.txt
hello world
Now it does this:
quickstart.rb:52:in `<main>': undefined method `jj' for main:Object
(NoMethodError)
But, in fact, doesn't create the document. I added some debug statements and
noticed that it didn't properly open or initialize the file.
What version of the product are you using? On what operating system?
OSX 10.8.5
Please provide any additional information below.
require 'rubygems'
require 'google/api_client'
require 'launchy'
require 'ap'
# Get your credentials from the APIs Console
# Redirect URIs: urn:ietf:wg:oauth:2.0:oob http://localhost
#
CLIENT_ID = '**' # removed
CLIENT_SECRET = '**' #removed
OAUTH_SCOPE = 'https://www.googleapis.com/auth/drive'
REDIRECT_URI = 'urn:ietf:wg:oauth:2.0:oob'
# Create a new API client & load the Google Drive API
client = Google::APIClient.new
drive = client.discovered_api('drive', 'v2')
# Request authorization
client.authorization.client_id = CLIENT_ID
client.authorization.client_secret = CLIENT_SECRET
client.authorization.scope = OAUTH_SCOPE
client.authorization.redirect_uri = REDIRECT_URI
uri = client.authorization.authorization_uri
Launchy.open(uri)
# Exchange authorization code for access token
$stdout.write "Enter authorization code: "
client.authorization.code = gets.chomp
client.authorization.fetch_access_token!
# Insert a file
file = drive.files.insert.request_schema.new({
'title' => 'My document',
'description' => 'A test document',
'mimeType' => 'text/plain'
})
media = Google::APIClient::UploadIO.new('document.txt', 'text/plain')
ap media
result = client.execute(
:api_method => drive.files.insert,
:body_object => file,
:media => media,
:parameters => {
'uploadType' => 'multipart',
'alt' => 'json'})
ap result
# Pretty print the API result
jj result.data.to_hash
and with manually created document.txt in local directory, gives me this output:
$ ruby quickstart.rb
W, [2013-09-25T17:50:12.638972 #65719] WARN -- : Google::APIClient - Please
provide :application_name and :application_version when initializing the client
Enter authorization code:
4/yRHSyySLY3esQQ7EcaMPZ3tbjDwA.srcJ5TLe_P4REnp6UAPFm0EGF4GvggI
#<Google::APIClient::UploadIO:0x007fb7639e5850 @content_type="text/plain",
@original_filename="document.txt", @local_path="document.txt",
@io=#<File:document.txt>, @opts={}>
#<Google::APIClient::Result:0x007fb7638451f8
@request=#<Google::APIClient::Request:0x007fb7639e3c58
@parameters={"uploadType"=>"multipart", "alt"=>"json"},
@headers={"Content-Type"=>"multipart/related;boundary=-----------RubyApiMultipar
tPost", "Content-Length"=>"505", "User-Agent"=>"google-api-ruby-client/0.6.4
Mac OS X/10.8.5"}, @api_method=#<Google::APIClient::Method:0x3fdbb1cf4fdc
ID:drive.files.insert>, @authenticated=nil,
@authorization=#<Signet::OAuth2::Client:0x007fb7651f2f10
@authorization_uri=#<Addressable::URI:0x3fdbb28f94cc
URI:https://accounts.google.com/o/oauth2/auth>,
@token_credential_uri=#<Addressable::URI:0x3fdbb28f9224
URI:https://accounts.google.com/o/oauth2/token>,
@client_id="467832462375.apps.googleusercontent.com",
@client_secret="0uWbksIS7c2-KNIRBs7JIzg3",
@scope=["https://www.googleapis.com/auth/drive"], @state=nil, @code=nil,
@redirect_uri=#<Addressable::URI:0x3fdbb1cff130 URI:urn:ietf:wg:oauth:2.0:oob>,
@username=nil, @password=nil, @issuer=nil, @principal=nil, @expiry=60,
@audience=nil, @signing_key=nil, @extension_parameters={}, @grant_type=nil,
@issued_at=2013-09-25 17:50:21 -0700,
@access_token="ya29.AHES6ZTmEM2pDKWvwOxfnWnw8Ek0ORDU3hnK2RVe-OgVTQ",
@expires_in=3600,
@refresh_token="1/7PudZBlFeAh9Znw0skk257-q0eYTmrdXs4HlXAgLTq4">,
@body=#<Faraday::CompositeReadIO:0x007fb7639b9070
@parts=[#<Parts::FilePart:0x007fb7639bc018
@head="-------------RubyApiMultipartPost\r\nContent-Disposition: form-data;
name=\"\"; filename=\"file.json\"\r\nContent-Length: 79\r\nContent-Type:
application/json\r\nContent-Transfer-Encoding: binary\r\n\r\n", @foot="\r\n",
@length=268, @io=#<CompositeReadIO:0x007fb7639bae98
@ios=[#<StringIO:0x007fb7639bafd8>, #<UploadIO:0x007fb7639e2c40
@content_type="application/json", @original_filename="file.json",
@local_path="local.path", @io=#<StringIO:0x007fb7639e2d30>, @opts={}>,
#<StringIO:0x007fb7639baf60>], @index=3>>, #<Parts::FilePart:0x007fb7639baba0
@head="-------------RubyApiMultipartPost\r\nContent-Disposition: form-data;
name=\"\"; filename=\"document.txt\"\r\nContent-Length: 12\r\nContent-Type:
text/plain\r\nContent-Transfer-Encoding: binary\r\n\r\n", @foot="\r\n",
@length=198, @io=#<CompositeReadIO:0x007fb7639b95c0
@ios=[#<StringIO:0x007fb7639b97c8>,
#<Google::APIClient::UploadIO:0x007fb7639e5850 @content_type="text/plain",
@original_filename="document.txt", @local_path="document.txt",
@io=#<File:document.txt>, @opts={}>, #<StringIO:0x007fb7639b96b0>], @index=3>>,
#<Parts::EpiloguePart:0x007fb7639b92c8
@part="-------------RubyApiMultipartPost--\r\n\r\n",
@io=#<StringIO:0x007fb7639b90e8>>], @ios=[#<CompositeReadIO:0x007fb7639bae98
@ios=[#<StringIO:0x007fb7639bafd8>, #<UploadIO:0x007fb7639e2c40
@content_type="application/json", @original_filename="file.json",
@local_path="local.path", @io=#<StringIO:0x007fb7639e2d30>, @opts={}>,
#<StringIO:0x007fb7639baf60>], @index=3>, #<CompositeReadIO:0x007fb7639b95c0
@ios=[#<StringIO:0x007fb7639b97c8>,
#<Google::APIClient::UploadIO:0x007fb7639e5850 @content_type="text/plain",
@original_filename="document.txt", @local_path="document.txt",
@io=#<File:document.txt>, @opts={}>, #<StringIO:0x007fb7639b96b0>], @index=3>,
#<StringIO:0x007fb7639b90e8>], @index=3>,
@media=#<Google::APIClient::UploadIO:0x007fb7639e5850
@content_type="text/plain", @original_filename="document.txt",
@local_path="document.txt", @io=#<File:document.txt>, @opts={}>>,
@response=#<Faraday::Response:0x007fb763845338 @env={:method=>:post,
:body=>"{\n \"error\": {\n \"errors\": [\n {\n \"domain\":
\"usageLimits\",\n \"reason\": \"accessNotConfigured\",\n \"message\":
\"Access Not Configured\"\n }\n ],\n \"code\": 403,\n \"message\":
\"Access Not Configured\"\n }\n}\n", :url=>#<URI::HTTPS:0x007fb7640086b0
URL:https://www.googleapis.com/upload/drive/v2/files?alt=json&uploadType=multipa
rt>, :request_headers=>{"User-Agent"=>"google-api-ruby-client/0.6.4 Mac OS
X/10.8.5",
"Content-Type"=>"multipart/related;boundary=-----------RubyApiMultipartPost",
"Content-Length"=>"505", "Authorization"=>"Bearer
ya29.AHES6ZTmEM2pDKWvwOxfnWnw8Ek0ORDU3hnK2RVe-OgVTQ",
"Cache-Control"=>"no-store"}, :parallel_manager=>nil, :request=>{:proxy=>nil},
:ssl=>{}, :status=>403, :response_headers=>{"content-type"=>"application/json",
"content-length"=>"205", "date"=>"Thu, 26 Sep 2013 00:50:21 GMT",
"server"=>"HTTP Upload Server Built on Sep 4 2013 16:50:41 (1378338641)",
"alternate-protocol"=>"443:quic", "connection"=>"close"},
:response=>#<Faraday::Response:0x007fb763845338 ...>},
@on_complete_callbacks=[]>>
quickstart.rb:55:in `<main>': undefined method `jj' for main:Object
(NoMethodError)
Original issue reported on code.google.com by jos...@warewolf.ca on 26 Sep 2013 at 12:52
The text was updated successfully, but these errors were encountered:
Resolved ... I must have made a mistake along the way. However, 'jj' is no
longer defined. You can fix by adding these:
require 'json'
...
puts JSON.pretty_generate(result.data.to_hash)
Original comment by jos...@warewolf.ca on 26 Sep 2013 at 2:18
Original issue reported on code.google.com by
jos...@warewolf.ca
on 26 Sep 2013 at 12:52The text was updated successfully, but these errors were encountered: