0

我正在使用分析報告API v4(c#)。在我的本地機器上一切正常,但沒有在網絡服務器上生產。Google Analytics報告API - 無法在生產服務器上啓動瀏覽器

我已經設置了一個OAuth 2.0用戶端ID在谷歌開發者控制檯web應用到兩個地址(「http://localhost:12345」,‘http://localhost:12345/Callback’和服務器上的實際域:‘http://example.com’,「http://example.com/Callback」)

我不認爲這個錯誤與我的代碼有關。我還從一個在線源讀取我的json,所以它不能與用戶讀/寫問題相關。我已經在生產服務器上的項目中設置了完全訪問文件夾App_Data的權限。那就是:

var path = Server.MapPath("~/App_Data"); 

var client = new WebClient(); 

var stream = client.OpenRead(https://api.myjson.com/bins/blahblah987654); 

var loginEmailAddress = ConfigurationManager.AppSettings["AnalyticsReporting.Email"]; 

return await GoogleWebAuthorizationBroker.AuthorizeAsync(
     GoogleClientSecrets.Load(stream).Secrets, 
     new[] { AnalyticsReportingService.Scope.Analytics }, 
     loginEmailAddress, CancellationToken.None, 
     new FileDataStore(path, fullPath: true)); 

在我的本地機器上的文件時,在該行創建:new FileDataStore(path, fullPath: true));但不是服務器(即使我有充分的權限設置爲App_Data文件夾)上。如果我手動將文件從本地複製到製作,當包含上述代碼的網址被擊中時,它將被刪除。

+0

什麼是錯誤?你檢查過你的授權重定向URI嗎? – sdhaus

+0

@sdhaus這是我得到的errorPage:https://accounts.google.com/o/oauth2/v2/auth?access_type=offline&response_type=code&client_id=934254096895-8bt34v7n9qs3t0kjl04gan1arjb5kkb5.apps.googleusercontent.com&redirect_uri=http:%2F%2Flocalhost :55882%2Fauthorize%2F&範圍= HTTPS:%2F%2Fwww.googleapis.com%2Fauth%2Fanalytics。我不知道爲什麼它說:「請求中的重定向URI,http:// localhost:55882/authorize,與OAuth客戶端授權的不匹配」,我在開發人員控制檯中設置的唯一redirectUrs是http:// example.com和http://example.com/Callback? – user3228992

+0

嘗試爲生產服務器創建新憑據。這是[最佳實踐](https://developers.google.com/identity/protocols/OAuth2#scenarios)prod/test/staging的客戶端憑據不同。這些改變還需要一段時間才能真正反映出來。希望這有助於 –

回答

0

爲了得到它的工作,你需要訪問你的console(按照錯誤),並更新授權的重新導向URI來包括http://localhost:55882/authorize/

請注意,這可能需要大約15分鐘就到了現場。

雖然您已經設置了example.com和example.com/Callback,但錯誤是說,重定向進行身份驗證的實際URI是http://localhost:55882/authorize/

您可能希望檢查生產中的身份驗證方式,因爲它不應該通過本地主機重定向。

+0

我不明白爲什麼它試圖驗證http:// localhost:55882/authorize /?我沒有在任何地方使用該網址.. – user3228992

相關問題