Imgur là một nền tảng mạng xã hội giúp mọi người chia sẻ hình ảnh trực tuyến. Bài viết này sẽ hướng dẫn tải hình ảnh lên Imgur, sử dụng ngôn ngữ C#.
Đăng ký ứng dụng với Imgur để lấy mã API
Bước 01: Đăng nhập vào Imgur bằng tài khoản của bạn
Bước 02: Đi đến đường dẫn: https://api.imgur.com/oauth2/addclient
Bước 03: Điền một số thông tin bắt buộc như sau:
- Application Name: Tên ứng dụng của bạn (đặt tên viết liền, không dấu).
- Authorization type: Chọn mục OAuth 2 authorization without a callback URL
- Email: Email của bạn.
- Description: Mô tả về project của bạn.
- Những thông tin còn lại, không bắt buộc nhưng bạn cũng có thể điền vào
- Xác thực re-CAPCHAR để xác thực không phải là robot.
Bước 04: Nhấn Submit để gửi yêu cầu.
Bước 05: Nhận được mã Client ID như sau:
Tải ảnh lên Imgur
Bước 01: Chuyển hình ảnh thành chuỗi Base64, như sau:
Nếu là tập tin trong máy của bạn (local file):
string imageBase64 = Convert.ToBase64String(File.ReadAllBytes(imgFile));code-box
Nếu là một tập tin có đường dẫn định danh trên mạng (URL):
string imageBase64 = Convert.ToBase64String(new WebClient().DownloadData(imgURL));code-box
Bước 02: Gửi request lên Imgur
// Khởi tạo web client WebClient wc = WebClient();
var values = new NameValueCollection{ { "image", imageBase64} };
wc.Headers.Add("Authorization", "Client-ID " + CLIENT_ID);
// Kết quả trả về kiểu byte[] byte[] response = wc.UploadValues("https://api.imgur.com/3/upload.xml", values);
// Chuyển về kiểu string string result = System.Text.Encoding.UTF8.GetString(response);code-box
Bước 03: Nhận kết quả từ Imgur như sau:
<data type="array" success="1" status="200">
<id>esNWB3Q</id>
<title/>
<description/>
<datetime>1573915003</datetime>
<type>image/png</type>
<animated>false</animated>
<width>640</width>
<height>393</height>
<size>45863</size>
<views>0</views>
<bandwidth>0</bandwidth>
<vote/>
<favorite>false</favorite>
<nsfw/>
<section/>
<account_url/>
<account_id>0</account_id>
<is_ad>false</is_ad>
<in_most_viral>false</in_most_viral>
<has_sound>false</has_sound>
<tags/>
<ad_type>0</ad_type>
<ad_url/>
<edited>0</edited>
<in_gallery>false</in_gallery>
<deletehash>Hn9GysVLBJ5x8VD</deletehash>
<name/>
<link>https://i.imgur.com/esNWB3Q.png</link>
</data>code-box
Đường dẫn hình ảnh trả về nằm trong cặp thẻ <link> và </link> .
Để lấy được liên kết ảnh thì ta phân giải cấu trúc XML ra như sau:
xml.LoadXml(result);
string imgurURL = xml.GetElementsByTagName("link")[0].InnerText;code-box
Kết quả:
Chúc các bạn code vui!
Đăng nhận xét