重要事項
建議您使用 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 服務位址
處理服務錯誤和例外狀況
沙箱