Tôi không biết làm thế nào Twitterizer2 công trình API nhưng tôi nghĩ rằng bạn có thể giải quyết vấn đề của bạn theo hai cách:
- Tìm kiếm tại công Twitter API cái gì đó giúp bạn phân tích cú pháp liên kết như vậy (nhìn vào Tweet Entities);
- Tự tải xuống nội dung của URL đó và phân tích cú pháp đó;
Đối với phương pháp thứ hai tôi sẽ đề nghị một cái gì đó giống như chức năng bên dưới (phân tích này được dựa trên hình ảnh đầu tiên tôi đã tìm thấy trên người sau đó tôi tweets nên nó chỉ hoạt động cho hình ảnh TwitPic):
private static Uri GetPicture(string twitterUri)
{
using (var webClient = new WebClient())
{
string html = webClient.DownloadString(twitterUri);
int imgIndex = html.IndexOf("<img class=\"photo\" id=\"photo-display\"");
int srcStartIndex = html.IndexOf("src", imgIndex) + 5;
int srcEndIndex = html.IndexOf("\"", srcStartIndex);
string imgSrc = html.Substring(srcStartIndex, srcEndIndex - srcStartIndex);
return new Uri(imgSrc);
}
}
Như bạn có thể tưởng tượng việc sử dụng là:
Uri imgUri = GetPicture("http://t.co/RQu9hZn8"); // this is a real image
Nguồn
2011-10-08 16:38:30
Thao tác này sẽ hoạt động (cho twitpic), nhưng lưu ý rằng bạn sẽ thực hiện cuộc gọi web cho từng ảnh và sẽ mất thời gian và băng thông để phân loại. –
Bạn sẽ tải xuống hình ảnh mà không cần tạo webcall như thế nào? Tôi vừa đề xuất một phương pháp để trích xuất chúng từ liên kết * được mã hóa *. Cách anh ấy xử lý * hình ảnh hiển thị * tùy thuộc vào anh ấy :) –
Nếu bạn đang tính cuộc gọi web để tải xuống dữ liệu hình ảnh, khi đó mã của bạn sẽ thực hiện 2 webcalls cho mỗi hình ảnh. Những gì bạn đang làm sẽ không trích xuất dữ liệu hình ảnh, nhưng url đến hình ảnh, mà khách hàng sẽ phải thực hiện một cuộc gọi đến url đó để tải xuống. Đó là những gì tôi đang nói về, bạn đang thực hiện thêm 1 cuộc gọi web. Tôi đăng một liên kết đến mẫu mã sẽ nhận được url trực tiếp từ twitter. Dữ liệu đã được đưa vào kết quả. –