我需要形成一個POST來發布Google PubSub消息。我無法使用客戶端庫,因爲它們使用與Google App Engine不兼容的gRPC。我可以形成關鍵的POST請求,但我不確定如何使用OAuth2對其進行身份驗證。使用OAuth2驗證Google PubSub POST請求
此鏈接顯示我在做什麼,但它掩蓋了驗證部分。 https://cloud.google.com/pubsub/docs/reference/rest/v1/projects.topics/publish
(如果GAE標準環境將支持GRPC這也沒有什麼關係。)
JSONObject obj = new JSONObject();
JSONArray attr = new JSONArray();
obj.put("script_name","foo_script.py");
obj.put("script_args","arg1");
attr.put(obj);
JSONObject jsontop = new JSONObject();
jsontop.put("messages",attr);
URL url = new URL("https://pubsub.googleapis.com/v1/projects/{my-URL}/topics/topic_run_script:publish");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
此代碼回來 「401:UNAUTHENTICATED」。我如何驗證它?
感謝@David的有用鏈接。我缺少的行是:最終的AppIdentityService appIdentity = AppIdentityServiceFactory.getAppIdentityService(); final AppIdentityService.GetAccessTokenResult accessToken = appIdentity.getAccessToken(scopes); conn.addRequestProperty(「Content-Type」,「application/json」); conn.addRequestProperty(「Authorization」,「Bearer」+ accessToken.getAccessToken()); – pldenc44