use bing_webmaster_api::{
BingWebmasterClient, BlockedUrl, BlockedUrlEntityType, BlockedUrlRequestType,
CountryRegionSettings, CountryRegionSettingsType, Result,
};
use chrono::Utc;
#[tokio::main]
async fn main() -> Result<()> {
let client = BingWebmasterClient::new(
std::env::var("BING_WEBMASTER_API_KEY")
.expect("BING_WEBMASTER_API_KEY environment variable must be set"),
);
let site_url = "https://example.com";
println!("Adding query parameters to ignore...");
client.add_query_parameter(site_url, "utm_source").await?;
client.add_query_parameter(site_url, "utm_medium").await?;
client.add_query_parameter(site_url, "utm_campaign").await?;
println!("Getting current query parameters...");
let params = client.get_query_parameters(site_url).await?;
for param in ¶ms {
println!(
" Parameter: {} (enabled: {}, source: {})",
param.parameter, param.is_enabled, param.source
);
}
println!("Disabling utm_source parameter...");
client
.enable_disable_query_parameter(site_url, "utm_source", false)
.await?;
println!("Adding blocked URLs...");
let blocked_url = BlockedUrl {
url: "https://example.com/admin".to_string(),
date: Utc::now().date_naive(),
days_to_expire: Some(30),
entity_type: BlockedUrlEntityType::Page,
request_type: BlockedUrlRequestType::FullRemoval,
};
client.add_blocked_url(site_url, &blocked_url).await?;
println!("Setting country/region targeting...");
let geo_settings = CountryRegionSettings {
date: Utc::now().date_naive(),
two_letter_iso_country_code: "US".to_string(),
r#type: CountryRegionSettingsType::Domain,
url: site_url.to_string(),
};
client
.add_country_region_settings(site_url, &geo_settings)
.await?;
println!("Adding connected pages...");
client
.add_connected_page(site_url, "https://partner-site.com/links-to-us")
.await?;
println!("Getting connected pages...");
let connected = client.get_connected_pages(site_url).await?;
for page in &connected {
println!(
" Connected page: {} (verified: {})",
page.url, page.is_verified
);
}
println!("Requesting crawl of specific URLs...");
client
.fetch_url(site_url, "https://example.com/new-content")
.await?;
println!("URL management operations completed!");
Ok(())
}