2017-08-10 41 views
0

我正在使用QML/Qt 5.9.1開發適用於Android和iOS的應用程序。我們要登錄Google雲端硬盤並下載並上傳一些文件。當然,我們必須從我的應用程序中選擇文件。因此,我正在嘗試使用第三部分庫。 因此,我的第一件事是通過使用Qt找到登錄的示例代碼。 我按照下面兩行的文章。在Android和iOS中使用Qt/QML登錄並從Google Drive或Dropbox獲取文件

http://blog.qt.io/blog/2017/01/25/connecting-qt-application-google-services-using-oauth-2-0/

How to set redirect_uri using QOAuth2AuthorizationCodeFlow and QOAuthHttpServerReplyHandler

我可以從瀏覽器中得到的登錄頁面,當我在處理我的Qt代碼QOAuth2AuthorizationCodeFlow部分。我認爲它希望使用REST從Google的API中獲取消息,如下面的鏈接。

https://developers.google.com/drive/v3/web/about-sdk

我開發的手機應用程序,但我必須使用「瀏覽器」登錄谷歌驅動器。我認爲這很奇怪。順便說一句,在上面的鏈接中,沒有其他代碼可以從Google雲端硬盤獲取文件列表。我被困在這裏。

因此,我試圖研究使用本機代碼來實現這一點,通過使用移動API沒有網絡api。這個想法是用本機代碼實現整個事情。

https://developers.google.com/drive/android/examples/

而使用JNI或其他方法從本機代碼Qt的消息傳遞。但看起來相當複雜,我發現我無法成功運行Google的示例代碼。我無法登錄Google雲端硬盤,並一直在示例代碼的選擇帳戶頁面中進行鏈接。

https://github.com/googledrive/android-demos/issues/43

我是研究如何現在使用的Dropbox。我可以從下面的鏈接獲得可行的示例代碼。

https://bugreports.qt.io/browse/QTBUG-60400

我可以登錄,上傳,下載和示例代碼刪除。但問題是它仍然使用「瀏覽器」登錄帳戶。我必須複製密碼並將密碼粘貼到我的應用程序以完成OAuth。這是不友好的,很難從我的手機複製PIN碼。順便說一下,我每次打開應用程序時都必須粘貼密碼才能登錄。

是否有可能通過使用REST在沒有「瀏覽器」的情況下在我的應用程序中登錄? 每次都可以不重新粘貼密碼嗎?

回答

0

是否有可能通過使用REST在沒有「瀏覽器」的情況下在我的應用程序中登錄?

不,Dropbox API應用程序必須由用戶通過OAuth應用程序授權流授權,該授權流程需要瀏覽器進行授權步驟。

是否有可能無法每次重新粘貼PIN碼?

是的,一旦你有一個用戶的訪問令牌,你可以存儲和重用它爲該用戶的未來API調用,無需進一步的手動用戶干預。

此外,請注意,您可以使用重定向URI來簡化應用授權流程,以便用戶無需手動複製和粘貼代碼。你可以找到關於這是如何工作的文檔中的詳細信息:

https://www.dropbox.com/developers/documentation/http/documentation#authorization

+0

它爲什麼可以登錄他們的應用程序,而無需使用瀏覽器嗎?這是我從其他應用捕獲的視頻:[DropBox登錄示例](https://drive.google.com/file/d/0B4xpZcFHmZ4edDBuTmR2aGhvSkU/view?usp=sharing)關於這個問題1.我誤解了什麼?我將研究如何存儲和重新使用它的API調用有關問題2. – user3792259

+0

這是我從我的手機Qt-Dropbox項目中捕獲的視頻[Qt_Dropbox_login](https://drive.google.com /文件/ d/0B4xpZcFHmZ4eMGNKMWZsUlJCNWc /視圖?USP =共享)。我必須從瀏覽器登錄並通過PIN碼到我的應用程序。 – user3792259

+0

我不確定我瞭解你的問題。該視頻確實顯示用戶通過嵌入式網絡視圖中的瀏覽器登錄並授權該應用。 – Greg

相關問題