2016年7月30日 星期六

使用Google Play Developer API讀取Google Play Store上APP的資訊 - Java

Google Play Developer API是Google提供的API,基本上用各種url以http來溝通,
使用它可以讓客戶端存取Play Store上APP的各種設定,就像是在Google Play Store Console上一樣。 (當然了客戶端必須被授權)

在這邊我們使用Java來讀取Google Play Store上APP的版本資訊,
使用 Google Play Developer API samples裡的ListApks.java範例來示範。

主要分成兩個部份:

下面開始說明一步步所需要做的步驟:
  • APP管理者:
    • Google Developers Console
      1. APP管理者指的是有APP在Play Store上上架的人,首先要進到Google Developers Console裡開一個新專案project(或使用舊專案)。
      2. 到「資料庫」搜尋並啟用「Google Play Android Developer API」
      3. 到「憑證」建立一個「服務帳戶金錀」
      4. 在「服務帳戶」選擇「新增服務帳戶」建立一個服務帳戶(Service Account),打入「服務帳戶名稱」後在下面就會得到一個「服務帳戶 ID」,這個之後會用到。
        「金鑰類型」選擇「P12」。

        按下建立後,就會得到一個副檔名為p12的檔案,這個之後也會用到。
    • Google Play Developer Console
      1. 接下來在Google Play Developer Console,到設定頁面(一個齒輪的圖案),選「API存取權」,選擇一個專案進行連結(就是在Google Developer Console設定的那個專案project)。
      2. 接著到下面的「服務帳戶」,選擇剛剛在Google Developer Console得到的「服務帳戶 ID」,點「賦予存取權」進入設定權限畫面 。
      3. 在設定畫面,選擇「新增應用程式 」,選擇要存取資訊的APP。
  • 服務請求者:
    •  Google Play Developer API samples
      1. Client Libraries and Code Samples中,可以下載Java的「androidpublisher_v2_public.zip」,裡面有需要Import進Java Project的Client Library,並且可以參考Code Sample如何使用Client Library。
      2. 這裡以ListApks.java為例,AndroidPublisherHelper.java是用來幫助我們使用Google Android Play API的輔助類,進去源碼可以看到有定義一個
        String, SRC_RESOURCES_KEY_P12 = "src/resources/key.p12" , 這就是我們要放置剛剛我們得到的副檔名為p12的地方。
      3. 在resources資料夾放好p12檔後,我們要到ApplicationConfig.java中設置一些東西。在ApplicationConfig.java中,我們可以看到以下設置:
        • String APPLICATION_NAME  
          • (應用程式名字,不是很重要,照這個"MyCompany-Application/1.0"格式就行)
        • String PACKAGE_NAME
          • (APP套件名稱,忘記了可以在Google Play Developer Console選APK按任一個Version的APK詳細資訊查到)
        • SERVICE_ACCOUNT_EMAIL
          • (這就是我們剛剛看到的服務帳戶 ID)
        • APK_FILE_PATH
          • (可以用在例如Upload APK時,這邊沒用到先忽略)
      4. 最後,我們執行ListApks.java,就可以看到在主控台中輸出如以下的訊息了:
      5. 檔案結構就像是這樣:
參考資料:

  1. Client Libraries and Code Samples
  2. Google Play Developer API samples
  3. Google Play Developer API
  4. Google Play Developer API V2 Rev32 1.22.0 (有Marven、Gradle等方式)
  5. Google Play Android Developer API return 401
  6. Why getting error 'The project id used to call the Google Play Developer API has not been linked in the Google Play Developer Console.