Aracılığıyla paylaş


İlk API çağrınızı yapma

Önemli

Haziran 2022'de, Bing Ads gereksinimi olarak çok faktörlü kimlik doğrulamasını kullanıma aldık. Bu gereksinimle uyumlu olmak için yine de kod değişikliği yapmanız gerekebilir. Microsoft Advertising, Ekim ayının başlarında teknik uygulama denetimleri gerçekleştiriyor.

Bu blog gönderisinde uyumluluğu sağlamak için gerçekleştirmeniz gereken adımlar özetlenmiştir.

Daha fazla bilgi için çok faktörlü kimlik doğrulama gereksinimi kılavuzuna bakın.

Yalnızca bir şeyin hemen çalışmasını istiyorsanız, Microsoft Advertising kullanıcı bilgilerinizi almak için bu adımları izleyin.

Üretim Hızlı Başlangıcı

Üretim ortamında kimlik doğrulaması yapmak için önce bir uygulama kaydetmeniz gerekir. Microsoft hesabı kimlik bilgilerinizle oturum açın ve uygulamanıza Microsoft Advertising hesaplarınızı yönetmek için onay verin.

  1. Yeni bir dosya oluşturun ve aşağıdaki betiği yapıştırın. Kayıtlı uygulamanızın Uygulama Kimliği olarak ayarlayın $clientId . Bir web uygulamasını gizli anahtarla kaydettiyseniz, erişim belirteçlerini istediğinizde de eklemeniz $client_secret=YourWebAppClientSecret gerekir.

Not

Aşağıdaki your_client_id Azure portal - Uygulama kayıtları portalının uygulamanızı atadığı uygulama (istemci) kimliğiyle değiştirin.

# Replace your_client_id with your registered application ID. 
$clientId = "your_client_id"

Start-Process "https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=$clientId&scope=openid%20profile%20https://ads.microsoft.com/msads.manage%20offline_access&response_type=code&redirect_uri=https://login.microsoftonline.com/common/oauth2/nativeclient&state=ClientStateGoesHere&prompt=login"

$code = Read-Host "Grant consent in the browser, and then enter the response URI here:"
$code = $code -match 'code=(.*)\&'
$code = $Matches[1]

# Get the initial access and refresh tokens. 

$response = Invoke-WebRequest https://login.microsoftonline.com/common/oauth2/v2.0/token -ContentType application/x-www-form-urlencoded -Method POST -Body "client_id=$clientId&scope=https://ads.microsoft.com/msads.manage%20offline_access&code=$code&grant_type=authorization_code&redirect_uri=https%3A%2F%2Flogin.microsoftonline.com%2Fcommon%2Foauth2%2Fnativeclient"

$oauthTokens = ($response.Content | ConvertFrom-Json)  
Write-Output "Access token: " $oauthTokens.access_token  
Write-Output "Access token expires in: " $oauthTokens.expires_in  
Write-Output "Refresh token: " $oauthTokens.refresh_token 

# The access token will expire e.g., after one hour. 
# Use the refresh token to get new access and refresh tokens. 

$response = Invoke-WebRequest https://login.microsoftonline.com/common/oauth2/v2.0/token -ContentType application/x-www-form-urlencoded -Method POST -Body "client_id=$clientId&scope=https://ads.microsoft.com/msads.manage%20offline_access&code=$code&grant_type=refresh_token&refresh_token=$($oauthTokens.refresh_token)"

$oauthTokens = ($response.Content | ConvertFrom-Json)  
Write-Output "Access token: " $oauthTokens.access_token  
Write-Output "Access token expires in: " $oauthTokens.expires_in  
Write-Output "Refresh token: " $oauthTokens.refresh_token

Dosyayı kaydedin ve adlandırın Get-Tokens-Production.ps1 (istediğiniz her şeyi adlandırabilirsiniz, ancak uzantı .ps1 olmalıdır).

Bir Microsoft Advertising hesabını program aracılığıyla yönetmek için web uygulaması onay akışı aracılığıyla en az bir kez onay vermeniz gerekir. Bundan sonra, yeni erişim istemek ve başka kullanıcı etkileşimi olmadan belirteçleri yenilemek için en son yenileme belirtecini kullanabilirsiniz.

  1. Şimdi bir konsol penceresi açın Get-Tokens-Production.ps1 . Komut isteminde, kaydettiğiniz Get-Tokens-Production.ps1 klasöre gidin ve aşağıdaki komutu girin:

    powershell.exe -File .\Get-Tokens-Production.ps1
    

    PowerShell betiği başarıyla çalıştırıldığında, Microsoft Advertising kimlik bilgilerinizi girdiğiniz bir tarayıcı oturumu başlatır. Onay verdikten sonra, tarayıcının adres çubuğu verme kodunu içerir (bkz. ?code=UseThisCode&...).

    https://login.microsoftonline.com/common/oauth2/nativeclient?code=M.R4_BAY.f202904c-2269-4daf-1e21-862ed4d49143
    

    Verme kodunu kopyalayın (M.R4_BAY.f202904c-2269-4daf-1e21-862ed4d49143 örneği değil kendi kodunuz) ve istemin konsol penceresine girin. PowerShell betiği daha sonra erişim ve yenileme belirteçlerini döndürür. (Betik, belirteçlerin nasıl yenilendiğini gösteren bir örnek olarak Invoke-WebRequest ikinci bir çağrı yapar.) Yenileme belirtecini parola gibi değerlendirmelisiniz; birisi bu kaynağı ele alırsa kaynaklarınıza erişebilir. Yenileme belirteci uzun ömürlüdür ancak geçersiz hale gelebilir. bir invalid_grant hatası alırsanız yenileme belirteciniz artık geçerli değildir ve kullanıcı onayı ve yeni yenileme belirteci almak için PowerShell betiğini yeniden çalıştırmanız Get-Tokens-Production.ps1 gerekir.

  2. Yeni bir dosya oluşturun ve aşağıdaki betiği yapıştırın. accessToken değerini aldığınız Get-Tokens-Production.ps1 değere ayarlayın ve burada özetlenen adımları izleyerek aldığınız geliştirici belirtecine ayarlayın$developerToken.

    $accessToken = "AccessTokenGoesHere";
    $developerToken = "DeveloperTokenGoesHere";
    
    [xml]$getUserRequest = 
    '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v13="https://bingads.microsoft.com/Customer/v13">
    <soapenv:Header>
       <v13:DeveloperToken>{0}</v13:DeveloperToken>
       <v13:AuthenticationToken>{1}</v13:AuthenticationToken>
    </soapenv:Header>
    <soapenv:Body>
       <v13:GetUserRequest>
          <v13:UserId xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
       </v13:GetUserRequest>
    </soapenv:Body>
    </soapenv:Envelope>' -f $developerToken, $accessToken
    
    $headers = @{"SOAPAction" = "GetUser"}
    
    $uri = "https://clientcenter.api.bingads.microsoft.com/Api/CustomerManagement/v13/CustomerManagementService.svc"
    $response = Invoke-WebRequest $uri -Method post -ContentType 'text/xml' -Body $getUserRequest -Headers $headers
    Write-Output $response.Content
    

    Dosyayı kaydedin ve adlandırın Get-User.ps1 (istediğiniz her şeyi adlandırabilirsiniz, ancak uzantı .ps1 olmalıdır).

  3. Şimdi bir konsol penceresi açın Get-User.ps1 . Komut isteminde, kaydettiğiniz Get-User.ps1 klasöre gidin ve aşağıdaki komutu girin:

    powershell.exe -File .\Get-User.ps1
    

    PowerShell betiği başarıyla çalıştırıldığında, müşteri rolleri de dahil olmak üzere Microsoft Advertising kullanıcınızın ayrıntılarını yazdırmalıdır. Ayrıntılar için bkz. GetUser.

Korumalı Alan Hızlı Başlangıç

Korumalı alan ortamında kimlik doğrulaması yapmak için bir uygulamayı kaydetmeniz gerekmez. Genel "Öğretici Örnek Uygulama" istemci kimliğini kullanmanız (ör. 00001111-aaaa-2222-bbbb-3333cccc4444) kullanmanız gerekir.

  1. Microsoft Advertising korumalı alan hesabına kaydolun. Microsoft hesabı (MSA) e-posta adresi outlook-int.com (örneğin, someone@outlook-int.com) olmalıdır. Daha fazla ayrıntı için bkz . Korumalı alan.

  2. Yeni bir dosya oluşturun ve aşağıdaki betiği yapıştırın.

    # Replace the Tutorial Sample App ID with your registered application ID. 
    $clientId = "00001111-aaaa-2222-bbbb-3333cccc4444"
    
    Start-Process "https://login.windows-ppe.net/consumers/oauth2/v2.0/authorize?client_id=$clientId&scope=openid%20profile%20https://api.ads.microsoft.com/msads.manage%20offline_access&response_type=code&redirect_uri=https://login.windows-ppe.net/common/oauth2/nativeclient&state=ClientStateGoesHere&prompt=login"
    
    $code = Read-Host "Grant consent in the browser, and then enter the response URI here:"
    $code = $code -match 'code=(.*)\&'
    $code = $Matches[1]
    
    # Get the initial access and refresh tokens. 
    
    $response = Invoke-WebRequest https://login.windows-ppe.net/consumers/oauth2/v2.0/token -ContentType application/x-www-form-urlencoded -Method POST -Body "client_id=$clientId&scope=https://api.ads.microsoft.com/msads.manage%20offline_access&code=$code&grant_type=authorization_code&redirect_uri=https://login.windows-ppe.net/common/oauth2/nativeclient"
    
    $oauthTokens = ($response.Content | ConvertFrom-Json)  
    Write-Output "Access token: " $oauthTokens.access_token  
    Write-Output "Access token expires in: " $oauthTokens.expires_in  
    Write-Output "Refresh token: " $oauthTokens.refresh_token 
    
    # The access token will expire e.g., after one hour. 
    # Use the refresh token to get new access and refresh tokens. 
    
    $response = Invoke-WebRequest https://login.windows-ppe.net/consumers/oauth2/v2.0/token -ContentType application/x-www-form-urlencoded -Method POST -Body "client_id=$clientId&scope=https://api.ads.microsoft.com/msads.manage%20offline_access&code=$code&grant_type=refresh_token&refresh_token=$($oauthTokens.refresh_token)"
    
    $oauthTokens = ($response.Content | ConvertFrom-Json)  
    Write-Output "Access token: " $oauthTokens.access_token  
    Write-Output "Access token expires in: " $oauthTokens.expires_in  
    Write-Output "Refresh token: " $oauthTokens.refresh_token 
    

    Dosyayı kaydedin ve adlandırın Get-Tokens-Sandbox.ps1 (istediğiniz her şeyi adlandırabilirsiniz, ancak uzantı .ps1 olmalıdır).

    Kullanıcının web uygulaması onay akışı aracılığıyla en az bir kez onay vermesi gerekir. Bundan sonra, yeni erişim istemek ve başka kullanıcı etkileşimi olmadan belirteçleri yenilemek için en son yenileme belirtecini kullanabilirsiniz.

  3. Şimdi bir konsol penceresi açın Get-Tokens-Sandbox.ps1 . Komut isteminde, kaydettiğiniz Get-Tokens-Sandbox.ps1 klasöre gidin ve aşağıdaki komutu girin:

    powershell.exe -File .\Get-Tokens-Sandbox.ps1
    

    PowerShell betiği başarıyla çalıştırıldığında, Microsoft Advertising kimlik bilgilerinizi girdiğiniz bir tarayıcı oturumu başlatır. Onay verdikten sonra, tarayıcının adres çubuğu verme kodunu içerir (bkz. ?code=UseThisCode&...).

    https://login.windows-ppe.net/common/oauth2/nativeclient?code=M.R0_CD1.132de532-5105-7550-b1fd-d37f9af2f009
    

    Verme kodunu (M.R0_CD1.132de532-5105-7550-b1fd-d37f9af2f009 örneği değil, kendi kodunuz) kopyalayın ve komut isteminde konsol penceresine girin. PowerShell betiği daha sonra erişim ve yenileme belirteçlerini döndürür. (Betik, belirteçlerin nasıl yenilendiğini gösteren bir örnek olarak Invoke-WebRequest ikinci bir çağrı yapar.) Yenileme belirtecini parola gibi değerlendirmelisiniz; birisi bu kaynağı ele alırsa kaynaklarınıza erişebilir. Yenileme belirteci uzun ömürlüdür ancak geçersiz hale gelebilir. bir invalid_grant hatası alırsanız yenileme belirteciniz artık geçerli değildir ve kullanıcı onayı ve yeni yenileme belirteci almak için PowerShell betiğini yeniden çalıştırmanız Get-Tokens-Sandbox.ps1 gerekir.

  4. Yeni bir dosya oluşturun ve aşağıdaki betiği yapıştırın. değerini accessToken , içinden Get-Tokens-Sandbox.ps1aldığınız değere ayarlayın.

    $accessToken = "AccessTokenGoesHere";
    $developerToken = "BBD37VB98";
    
    [xml]$getUserRequest = 
    '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v13="https://bingads.microsoft.com/Customer/v13">
    <soapenv:Header>
       <v13:DeveloperToken>{0}</v13:DeveloperToken>
       <v13:AuthenticationToken>{1}</v13:AuthenticationToken>
    </soapenv:Header>
    <soapenv:Body>
       <v13:GetUserRequest>
          <v13:UserId xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
       </v13:GetUserRequest>
    </soapenv:Body>
    </soapenv:Envelope>' -f $developerToken, $accessToken
    
    $headers = @{"SOAPAction" = "GetUser"}
    
    $uri = "https://clientcenter.api.sandbox.bingads.microsoft.com/Api/CustomerManagement/v13/CustomerManagementService.svc"
    $response = Invoke-WebRequest $uri -Method post -ContentType 'text/xml' -Body $getUserRequest -Headers $headers
    Write-Output $response.Content
    

    Dosyayı kaydedin ve adlandırın Get-User.ps1 (istediğiniz her şeyi adlandırabilirsiniz, ancak uzantı .ps1 olmalıdır).

  5. Şimdi bir konsol penceresi açın Get-User.ps1 . Komut isteminde, kaydettiğiniz Get-User.ps1 klasöre gidin ve aşağıdaki komutu girin:

    powershell.exe -File .\Get-User.ps1
    

    PowerShell betiği başarıyla çalıştırıldığında, müşteri rolleri de dahil olmak üzere Microsoft Advertising kullanıcınızın ayrıntılarını yazdırmalıdır. Ayrıntılar için bkz. GetUser.

Ayrıca Bkz

Başlarken