2012-06-10 28 views
10

Tôi đang sử dụng thư viện ứng dụng khách của Google và cố gắng thực hiện yêu cầu GET tới Google Play API.Thông tin xác thực của Google: Tài khoản nhà phát triển này không sở hữu ứng dụng

 GoogleCredential credential= new GoogleCredential.Builder().setTransport(netHttpTransport) 
       .setJsonFactory(jacksonFactory) 
       .setServiceAccountId(CLIENT_ID) 
       .setServiceAccountScopes(SCOPE) 
       .setServiceAccountPrivateKeyFromP12File(file) 
       .build(); 
       credential.refreshToken();  
     HttpRequestFactory requestFactory =netHttpTransport.createRequestFactory(credential); 
     GenericUrl url = new GenericUrl(URI); 
     HttpRequest request = requestFactory.buildGetRequest(url); 
     HttpResponse response = request.execute(); 

tôi nhận được

{ 
    "code" : 401, 
    "errors" : [ { 
    "domain" : "androidpublisher", 
    "message" : "This developer account does not own the application.", 
    "reason" : "developerDoesNotOwnApplication" 
    } ], 
    "message" : "This developer account does not own the application." 
} 

Ứng dụng của tôi chưa được công bố, có thể gây ra vấn đề?

+0

Tôi có cùng sự cố ... –

+0

Câu hỏi tương tự: http://stackoverflow.com/questions/11115381/unable-to-get-the-subscription-information-from-google-play-android-developer-ap –

+0

Cuối cùng tôi đã giải quyết câu hỏi này, hãy kiểm tra điều này tại: http://stackoverflow.com/questions/11115381/unable-to-get-the-subscription-information-from-google-play-android-developer-ap –

Trả lời

0

Tôi nghi ngờ vấn đề đó chính xác trong việc xuất bản. Trước tiên, bạn cần phải liên kết ứng dụng của mình với tài khoản (nhà phát triển) của bạn và sau đó bạn sẽ nhận được CLIENT_ID và các thông tin đăng nhập khác (chẳng hạn như khóa bí mật, v.v.).

+0

"Bind ứng dụng của bạn vào tài khoản của bạn "? Làm sao? Ở đâu? Trong API Google Console? Trong Google Play? –

+0

Nếu bạn muốn xuất bản ứng dụng Android trên Google Play, trước tiên bạn phải chỉ định ứng dụng của mình cho "tài khoản nhà xuất bản" [tại đây] (https://play.google.com/apps/publish/). Nếu bạn muốn sử dụng một số API khác, bạn nên xem xét trang web API thích hợp. –

+0

Cân nhắc đăng ký ** tài khoản xuất bản ** mới có giá 25 đô la. Nhưng việc thêm ứng dụng mới vào tài khoản hiện tại của bạn là miễn phí. –

4

Sự cố là bạn đang sử dụng luồng OAuth 2.0 của tài khoản dịch vụ để ủy quyền cho API android-publisher. Tôi đã làm nó theo cùng một cách. Tuy nhiên, Google yêu cầu sử dụng luồng ứng dụng máy chủ Web, điều này thật lố bịch, vì cần có sự tương tác của con người để cho phép truy cập API.

May mắn thay có một cách xung quanh nó. Bạn chỉ cần có được refresh_token, lưu trữ và tiếp tục sử dụng nó cho các cuộc gọi API trong tương lai. Tôi wrote about it in more detail trên blog của tôi.

+0

Thật không may là liên kết của bạn đã chết, bất kỳ cơ hội nào bạn có thể tái xuất bản thông tin ở một nơi khác hoặc thậm chí tốt hơn, thêm nó vào câu trả lời này? – Jean

+0

@Jean Tôi nghĩ rằng những gì Milan đang đề cập đến là [dưới đây bây giờ] (http://milancermak.wordpress.com/2012/08/24/server-side-verification-of-google-play-subsc) – Wojciech

+0

Cảm ơn Wojciech .Tôi đã sửa liên kết ngay bây giờ, vì tôi phải di chuyển khỏi Posterous. –

6

Tôi gặp vấn đề tương tự. Điều này xảy ra vì bạn ủy quyền cho người dùng trong Google API không sở hữu ứng dụng và cố gắng lấy dữ liệu thuộc về ứng dụng của bạn.

Trong chủ đề này, nó được mô tả rõ. http://support.google.com/googleplay/android-developer/bin/answer.py?hl=en&answer=2528691&topic=16285&ctx=topic

Bạn phải ủy quyền bởi OAuth2 chủ sở hữu ứng dụng và sau đó sử dụng API Google với mã thông báo có được.

+1

Để thêm những gì ikrovorotenko cho biết mã thông báo truy cập của nhà phát triển hoặc mã thông báo truy cập của người dùng đã được nhà phát triển ủy quyền truy cập dữ liệu tài chính của ứng dụng. – Searock

1

Chúng tôi cũng gặp khó khăn với vấn đề này vì chúng tôi muốn xác thực giao dịch mua trên máy chủ của chúng tôi để mở khóa một số tính năng nhất định. Chúng tôi đã thử nhiều giải pháp và khung công tác, được viết bởi những người dùng cộng đồng đồng nghiệp và thậm chí là triển khai chính thức nhưng không có ai làm việc.

Tắt tất cả những gì chúng tôi phải làm là gia hạn mã thông báo OAuth của chúng tôi (mà chúng tôi vừa tạo) và sau đó tất cả đều bắt đầu hoạt động.

Các vấn đề liên quan