Google 마이 그 레이션 도구를 사용하여 기존 GAMv1 사용자를 GAMv2로 가져오고 있으며 401 소비자 키가 유효하지 않다고 알려지며 승인되지 않았습니다. 우리는 여기에서 찾을 구글의 APIClient 루비 라이브러리를 사용하고UpgradableApp API를 사용할 때 "401 Unauthorized"
: https://github.com/google/google-api-ruby-client/ 나는 우리가 https://developers.google.com/apps-marketplace/v1migratev2, 에서 확인 된 동일한 자격 증명 집합을 전달하고 것을 우리는 두 다리의 OAuth 1.0을 지정하고 꽤 확신 API. 우리는 다음과 같습니다 사용하는 코드는 단지 승인 비트 제거 : 우리는 나는 개인 세부 사항을 제거했습니다 (수율이 로그를 보면
@client = Google::APIClient.new(
:authorization => :two_legged_oauth_1,
:application_name => 'App Name',
:application_version => ‘1.0'
)
@client.authorization.client_credential_key = '%s.apps.googleusercontent.com' % Auth::Application::CONFIG['GOOGLE_GAMV1_APPLICATION_ID']
@client.authorization.client_credential_secret = Auth::Application::CONFIG['GOOGLE_GAMV1_SECRET']
@service = @client.discovered_api('appsmarket', 'v2’)
request = @client.execute(
@service.upgradable_app.update,
'marketplaceListingId' => Auth::Application::CONFIG['GOOGLE_GAMV1_LISTING_ID'],
'domainName' => account.domain,
'cwsItemId' => Auth::Application::CONFIG['GOOGLE_GAMV2_CWS_ID']
)
을, 그러나 우리는 우리가했습니다 거의 확신하는 우리는 문제가 공급자의 말에 의심하기 시작하고이 시점에서, 솔직히
D, [2014-08-28T14:37:17.025667 #12517] DEBUG -- : Google::APIClient - Initializing client with options {:authorization=>:two_legged_oauth_1, :application_name=>"App Name", :application_version=>"1.0"}
D, [2014-08-28T14:37:17.040994 #12517] DEBUG -- : Google::APIClient::Request Sending API request get https://www.googleapis.com/discovery/v1/apis/appsmarket/v2/rest {"User-Agent"=>"App Name/1.0 google-api-ruby-client/0.7.1 Linux/2.6.18-371.3.1.el5\n (gzip)", "Accept-Encoding"=>"gzip", "Content-Type"=>""}
D, [2014-08-28T14:37:17.202238 #12517] DEBUG -- : Decompressing gzip encoded response (2427 bytes)
D, [2014-08-28T14:37:17.202646 #12517] DEBUG -- : Decompressed (11988 bytes)
D, [2014-08-28T14:37:17.202801 #12517] DEBUG -- : Google::APIClient::Request Result: 200 {"expires"=>"Thu, 28 Aug 2014 18:42:17 GMT", "date"=>"Thu, 28 Aug 2014 18:37:17 GMT", "cache-control"=>"public, max-age=300, must-revalidate, no-transform", "etag"=>"\"FrPV2U6xXFUq8eRv_PO3IoAURkc/cQQHsn4vhpzWbmwcoTBTIElFFgs\"", "content-type"=>"application/json; charset=UTF-8", "x-content-type-options"=>"nosniff", "x-frame-options"=>"SAMEORIGIN", "x-xss-protection"=>"1; mode=block", "content-length"=>"2427", "server"=>"GSE", "alternate-protocol"=>"443:quic", "connection"=>"close"}
D, [2014-08-28T14:37:17.326157 #12517] DEBUG -- : Google::APIClient::Request Sending API request put https://www.googleapis.com/appsmarket/v2/upgradableApp/xxxxxxxxxxxx/xxxxxxxxxxxxxxxx/xxxxxxxx {"User-Agent"=>"App Name/1.0 google-api-ruby-client/0.7.1 Linux/2.6.18-371.3.1.el5\n (gzip)", "Accept-Encoding"=>"gzip", "Content-Type"=>"", "Authorization"=>"OAuth oauth_consumer_key=\"xxxxxxxxxx.apps.googleusercontent.com\", oauth_signature_method=\"HMAC-SHA1\", oauth_timestamp=\"xxxxxxxxx\", oauth_nonce=\"xxxxxxxxxxxxxxxxxxxxxxxx\", oauth_version=\"1.0\", oauth_signature=\"xxxxxxxxxxxxxxxxxxx\"", "Cache-Control"=>"no-store"}
D, [2014-08-28T14:37:17.742199 #12517] DEBUG -- : Decompressing gzip encoded response (149 bytes)
D, [2014-08-28T14:37:17.742494 #12517] DEBUG -- : Decompressed (203 bytes)
D, [2014-08-28T14:37:17.742686 #12517] DEBUG -- : Google::APIClient::Request Result: 401 {"www-authenticate"=>"Bearer realm=\"https://accounts.google.com/AuthSubRequest\"", "content-type"=>"application/json; charset=UTF-8", "date"=>"Thu, 28 Aug 2014 18:37:18 GMT", "expires"=>"Thu, 28 Aug 2014 18:37:18 GMT", "cache-control"=>"private, max-age=0", "x-content-type-options"=>"nosniff", "x-frame-options"=>"SAMEORIGIN", "x-xss-protection"=>"1; mode=block", "server"=>"GSE", "alternate-protocol"=>"443:quic", "connection"=>"close", "transfer-encoding"=>"chunked"}
E, [2014-08-28T14:37:17.755822 #12517] ERROR -- : Bad request: status=401, body={"error":{"errors":[{"domain":"global","reason":"authError","message":"Invalid OAuth consumer key","locationType":"header","location":"Authorization"}],"code":401,"message":"Invalid OAuth consumer key"}}
-하지만 우리는 할 수 싶네요 : 올바른 CLIENT_ID, client_secret, 목록 ID 등)을 가지고 입증 된 잘못!
Java로 구현할 때 똑같은 것을 보게됩니다. 어떤 해결책이나 결정이 Google 문제입니까? 감사! –
아직! 우리는 우리가 짖는 소리인지 아닌지 알아 내려고 노력하고 있습니다. – minichate