Flickr API

wrackbaaΚινητά – Ασύρματες Τεχνολογίες

10 Δεκ 2013 (πριν από 3 χρόνια και 10 μήνες)

263 εμφανίσεις

Flickr API

0712084

0712167

Flickr API

Giới thiệu


Flickr® là ứng dụng quản lý và
chia sẻ ảnh trực tuyến hàng đầu
hiện nay.



Mỗi phút Flickr nhận hơn 3000
hình; đến 19 tháng 9/2010, Flickr
nhận hình thứ 5 tỷ

Flickr API

Thương mại/ phi thương mại


Free!!!


Có thể tính phí với một số
trường hợp.

Flickr API


Flickr API

Tài liệu, công cụ


http://www.flickr.com/services/api/



http://www.flickr.com/services/developer/


http://code.flickr.com/


API kit: có hơn 20 API kit cho
15 ngôn ngữ lập trình

Flickr API

Tính năng


-

Upload (đồng bộ và không
đồng bộ)


-

Đưa ảnh lên blog


-

Lấy danh sách liên lạc


-

Truy xuất danh sách ưa
thích


-

Truy xuất phòng tranh


-

Tìm và lấy thông tin nhóm


-

Lấy danh sách thành viên
nhóm


-

Truy xuất ảnh trong nhóm


-

Lấy danh sách ảnh hấp dẫn





-

Tìm người, lấy thông tin,
lấy ảnh


-

Truy xuất ảnh và thông tin
liên quan


-

Biến đổi ảnh (hiện chỉ mới
có quay ảnh)


-

Truy xuất bộ ảnh (photoset)
và bình luận


-

Lấy thông tin Flickr API
(danh sách hàm, chi tiết
hàm)


-

Lấy các thông tin thống kê


-

Lấy tag




Flickr API

Gọi hàm (REST)


http://api.flickr.com/services/rest/
?


method=
<funcname>
&
<argname>
=
<value>



Vd: http://…/?
method
=
flickr.test.echo
&
name
=
value



Ngoài ra có thể gửi theo định dạng
XML
-
RPC, SOAP.

Flickr API

Định dạng trả về


<?xml version="1.0" encoding="utf
-
8" ?>


<rsp stat="ok">



[xml
-
payload
-
here]


</rsp>



<?xml version="1.0" encoding="utf
-
8" ?>


<rsp stat="fail">



<err code="[error
-
code]" msg="[error
-
message]" />


</rsp>



Ngoài ra có thể chỉ định nhận kết quả trả về định dạng XML
-
RPC, SOAP, JSON, PHP

Phát triển ứng dụng



Xin API key

Flickr API

Key thương mại


Cần mô tả rõ mục đích để được
xét duyệt



Kinh doanh độc lập, quy mô
nhỏ, hộ gia đình thì không xem
như ứng dụng thương mại


Flickr API

Xin API key


http://www.flickr.com/services/apps/create/apply/

Cần giao tiếp với tài
khoản người dùng?



Phải x
in phép người
dùng

Flickr API

Chứng thực (authentication)

1.
Lấy frob (~session id)


flickr.auth.getFrob


2.
Người dùng đăng nhập và
chứng thực ứng dụng

3.
Lấy thẻ chứng thực


flickr.auth.getToken


Flickr API

Ví dụ: lấy frob


String
method
= "flickr.auth.getFrob";

String
apiSign
= createMD5(_secret +
"api_key" + _apiKey +
"method" + method);


String
getFrobURL
= "http://flickr.com/services/rest/?";


getFrobURL += "method=" +
method
;


getFrobURL += "&api_key=" + _
apiKey
;


getFrobURL += "&api_sig=" +
apiSign
;



HttpWebRequest request
=



(HttpWebRequest)WebRequest.Create(
getFrobURL
);

HttpWebResponse respond =


(HttpWebResponse)request.GetResponse();

StreamReader str = new



StreamReader(respond.GetResponseStream());


XmlDoc
ument xdoc = new XmlDocument();

xdoc.LoadXml(str.ReadToEnd());


_
frob
=xdoc.SelectSingleNode(".//frob").InnerText;





Dùng API Kit !!

Flickr API

Flickr.NET


http://flickrnet.codeplex.com/


Thư viện Flickr.NET được viết hoàn
toàn bởi C# và có thể được truy xuất
từ:


Net Framework 2.0 trở lên.


.Net Compact Framework 2.0 SP1 trở lên.


Silverlight 3.0 trở lên.


Windows 7 Phone


Mono


Monotouch for iPhone


Flickr API

Ví dụ Flickr.NET


Lấy frob



Chứng thực



Lấy thẻ chứng thực



string
flickrUrl = flckr.AuthCalcUrl(tempFrob,
AuthLevel
.Write);

System.Diagnostics.
Process
.Start(flickrUrl);

Flickr
flickr =
new

Flickr
(ApiKey, SharedSecret);

tempFrob = flickr.AuthGetFrob();

Auth
auth = flickr.AuthGetToken(tempFrob);

flickr.ApiToken = auth.Token;

Flickr API

Ví dụ Flickr.NET


Upload ảnh




Cập nhật ảnh



string
file =
"test.jpg"
;

string
title =
"Test Photo"
;

string
descripton =
"This is the description of the photo"
;

string
tags
=
"tag1,tag2,tag3"
;

string
photoId = flickr.UploadPicture(file, title, dscription, tags);

flickr.PhotosSetMeta(photoId,
"New Title"
,
"New Description"
);

Flickr API

Ví dụ Flickr.NET


Đưa ảnh vào photoset


Photosets
sets = flickr.PhotosetsGetList();

Photoset
set = sets.Photo
setCollection[0];

flickr.PhotosetsAddPhoto(set.PhotosetId, photoId);