40 lines
1.2 KiB
Rust
40 lines
1.2 KiB
Rust
use tonic::{Request, Status, metadata::MetadataValue, transport::Channel};
|
|
use youtube_chat_rs::stream_list::{
|
|
LiveChatMessageListRequest,
|
|
v3_data_live_chat_message_service_client::V3DataLiveChatMessageServiceClient,
|
|
};
|
|
|
|
#[tokio::main]
|
|
async fn main() -> Result<(), Box<dyn std::error::Error>> {
|
|
let channel = Channel::from_static("dns:///youtube.googleapis.com:443")
|
|
.connect()
|
|
.await?;
|
|
let mut client = V3DataLiveChatMessageServiceClient::with_interceptor(channel, auth_header);
|
|
|
|
let request = tonic::Request::new(LiveChatMessageListRequest {
|
|
part: vec!["snippet".to_string()],
|
|
live_chat_id: Some("A0VHDvkheIg".to_string()), // TODO Fetch Latest Stream ID
|
|
max_results: Some(20),
|
|
page_token: None,
|
|
hl: None,
|
|
profile_image_size: None,
|
|
});
|
|
|
|
let response = client.stream_list(request).await?;
|
|
|
|
println!("RESPONSE={:?}", response);
|
|
|
|
Ok(())
|
|
}
|
|
|
|
fn auth_header(mut req: Request<()>) -> Result<Request<()>, Status> {
|
|
let token: MetadataValue<_> = "Bearer my-secret-token"
|
|
.parse()
|
|
.expect("failed to parse token");
|
|
|
|
req.metadata_mut()
|
|
.insert("x-goog-api-key", token)
|
|
.expect("WHAT");
|
|
Ok(req)
|
|
}
|