透過 Bing Ads API 開始使用 Java

重要事項

建議您使用 Java 11 或更新版本。 我們支援的最低 Java 版本為 1.8。 使用 1.8 時,您必須將 CXF 從相依性中排除。 您可以使用 Maven 建置 此範例檔案 。

若要開始使用 Java 開發 Bing Ads API 應用程式,您可以從 提供的範例 開始,或遵循 Web 或 傳統型 應用程式的其中一個應用程式逐步解說。

您將需要可在 生產環境 或 沙箱中存取 Microsoft Advertising 的使用者認證。 對於生產環境,您需要 生產開發人員權杖。 所有沙箱用戶端都可以使用通用沙箱開發人員權杖,即 BBD37VB98。 如需詳細資訊,請參閱 開始使用 Bing Ads API 和 沙箱。

若要透過 OAuth 進行驗證,您也必須註冊應用程式,並取得對應的用戶端識別碼。 如果您正在開發 Web 應用程式,您也需要記住用戶端密碼和重新導向 URI。 如需在生產環境中註冊應用程式和授權碼授與流程的詳細資訊,請參閱 使用 OAuth 驗證 和 使用 SDK 進行驗證。 雖然在生產環境中您必須使用自己的應用程式識別碼 (也稱為用戶端識別碼) ,但所有Microsoft廣告客戶都可以在沙箱中使用公開的「教學課程範例應用程式」用戶端識別碼,例如 00001111-aa-2222-bbbb-3333ccc4444。 如需詳細資訊,請參閱 沙箱。

安裝 SDK

Bing Ads Java SDK 取決於 Maven 存放庫中列出的程式庫。

當您建立 Maven 專案並包含 microsoft.bingads Maven 成品時,如下所示,系統會自動安裝其他相依性。 如果您未使用 Maven 專案,則必須包含每個相依性的正確版本。 如需詳細資訊,請參閱逐步 解說:Java 中的 Bing 廣告 API Web 應用程式 或 逐步解說:Java 應用程式中的 Bing 廣告 API 桌面應用程式 範例。

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  ...
  <dependencies>
    <dependency>
      <groupId>com.microsoft.bingads</groupId>
      <artifactId>microsoft.bingads</artifactId>
      <version>13.0.10</version>
    </dependency>
  </dependencies>
</project>

注意事項

版本 13.0.10 會包含在內做為範例。 如需最新 SDK 相依性版本的詳細資訊,請參閱 Bing Ads Java SDK GitHub README.md。

逐步解說

安裝 Bing Ads Java SDK 之後,您可以瀏覽 Bing Ads API 程式碼範例、從 GitHub 下載範例,或遵循 Web 或 傳統型 應用程式的其中一個應用程式逐步解說。

設定沙箱

若要使用 沙箱 環境,請在專案來源根目錄中建立名為 bingads.properties 的新文字檔,例如 ProjectName\src\bingads.properties ,並新增下列文字。 以下是 bingads.properties 檔案的完整內容。 如果沙箱環境設定格式不正確或遺失,則預設環境為生產環境。

environment=Sandbox

您也可以個別設定每個 ServiceClient 的環境,如下所示。

CustomerService = new ServiceClient<ICustomerManagementService>(
    authorizationData,
    ApiEnvironment.SANDBOX,
    ICustomerManagementService.class
);

無論您是全域設定還是個別設定 ServiceClient 環境,您也需要將 OAuth 環境設定為沙箱。

final OAuthDesktopMobileAuthCodeGrant oAuthDesktopMobileAuthCodeGrant = new OAuthDesktopMobileAuthCodeGrant(
    ClientId, 
    ApiEnvironment.SANDBOX
);

具有用戶端密碼和自訂重新導向 URI 的 Web 應用程式應該使用 OAuthWebAuthCodeGrant,如下所示。

OAuthWebAuthCodeGrant oAuthWebAuthCodeGrant = new OAuthWebAuthCodeGrant(
    ClientId, 
    ClientSecret, 
    new URL(RedirectUri),
    ApiEnvironment.SANDBOX
);

在主控台中記錄要求和回應標頭。 TrackingId 包含在回應標頭中。

MessageHandler.getInstance().setTraceOn(true);

自訂 HTTP 用戶端

對於大部分的應用程式,建議您使用 Bing Ads Java SDK 中的預設 HTTP 用戶端實作,其依賴於 Apache CXF JAX-RS 用戶端。 您可能想要自訂 HTTP 用戶端來設定一些功能,例如在使用不同的 JAX-RS 實作時啟用壓縮、變更 HTTP 逾時、Proxy 配置或其他設定。

若要這麼做,您可以建立自訂 HttpClientProvider 物件,並在進行服務呼叫之前將其傳遞給 GlobalSettings.setHttpClientProvider() 。 例如:

GlobalSettings.setHttpClientProvider(new HttpClientProvider() 
{ 
    @Override 
    protected ClientBuilder configureClientBuilder(ClientBuilder clientBuilder) { 
        return super.configureClientBuilder(clientBuilder) 
            // override default connect timeout 
            .connectTimeout(90, TimeUnit.SECONDS)
            // override default read timeout
            .readTimeout(5, TimeUnit.MINUTES) 
            // enable compression (if using Jersey client)
            .register(org.glassfish.jersey.message.GZipEncoder.class)
            .register(org.glassfish.jersey.client.filter.EncodingFilter.class);
    }
}); 

記錄服務呼叫

若要啟用要求和回應訊息的記錄,您可以將 com.sun.xml.ws.transport.http.client.HttpTransportPipe.dump 屬性設定為 true:

System.setProperty("com.sun.xml.ws.transport.http.client.HttpTransportPipe.dump", "true");

根據預設,Bing Ads Java SDK 會使用 Apache CXF 進行服務呼叫,而這仰賴 Simple Logging Facade for Java 來寫入記錄。 若要將記錄的訊息輸出至主控台,您可以將 slf4j-simple 實作新增至應用程式相依性。 例如:

<dependency> 
    <groupId>org.slf4j</groupId> 
    <artifactId>slf4j-simple</artifactId> 
    <version>2.0.12</version> 
</dependency> 

另請參閱

Bing 廣告 API 用戶端程式庫
Bing Ads API 程式碼範例
Bing 廣告 API Web 服務位址
處理服務錯誤和例外狀況
沙箱