2015-09-04 57 views
0

我試圖建立一個C#Windows應用程序來執行一些自定義谷歌的Blogger任務。使用Google.Apis.Blogger.v3 Nuget包,我已經成功地查詢了我的公開測試博客的帖子,但是現在我想讓它能夠查詢博客的博文帖子和執行管理任務。認證與Blogger API爲Windows桌面應用程序

我已經通過this page和一堆OAuth的相關頁面。他們似乎都很模糊。該頁面是我看到的最接近實際使用API​​的OAuth。但我不明白爲什麼它使用硬編碼的字符串「user」。 「用戶」從哪裏來?

此外,我看不出如何做到這一點給我訪問博客。我想它會驗證我的應用程序,但我的應用程序沒有權限管理任何它想要的博客。我的應用程序的用戶是否必須獲取自己的OAuth ID祕密並將其提供給我的應用程序?不友好的用戶。我想象我的應用程序只是允許用戶輸入他們的博客的URL,他們的用戶名和密碼,然後通過API進行身份驗證,並在每個請求中發送該令牌。有沒有辦法讓我只使用用戶名&的密碼訪問博客?

回答

0

我想通了通過看一些其他更好的文檔的API的。 youtube API docs had a page更詳細地解釋了它。基本上,Google不希望用戶將他們的憑據輸入到您的應用中。而是將它們發送到允許他們授權應用程序的谷歌頁面。您將OAuth信息傳遞到該頁面,以便它可以識別您的應用並詢問用戶是否允許訪問。這是一個桌面應用程序有點毛茸茸的地方。該頁面可以回發到本地主機URL,但由於大多數用戶不具有Web服務器,因此它也可以選擇將響應放入響應網頁的標題中。有關此信息,請參閱Google oauth redirect_uri參數。

的谷歌.NET API已經內置了這種支持(見GoogleWebAuthorizationBroker.AuthorizeAsync and UserCredential)。它可以讀取開發人員控制檯爲您生成的client_secret.json文件,打開客戶端瀏覽器併發送oauth訪問請求,讀取響應並在完成後關閉瀏覽器。 This link with a Console App example真的幫助了我。

我仍然不清楚的部分是發送到GoogleWebAuthorizationBroker.AuthorizeAsync()硬編碼的「用戶」參數,但它似乎工作。