FlickrNet (.NET용 Flickr API Kits) 수정할 부분.

Silverlight Old/Workshop 2008.01.28 16:06

1. Flickr Buddy Icon URL 규약

Flickr에 사진을 업로드한 사람의 Profile Image에 해당하는 Buddy Icon 규약은 다음과 같습니다.

Buddyicons

Every flickr user has a 48x48 pixel buddyicon used to represent themselves.

You can construct the url of a buddyicon once you know the user's NSID, icon server and icon farm, as returned by many api methods.

If the icon server is greater than zero, the url takes the following format:

http://farm{icon-farm}.static.flickr.com/{icon-server}/buddyicons/{nsid}.jpg

else the following url should be used:

참고 : http://www.flickr.com/services/api/misc.buddyicons.html


2. How to make Buddy Icon URL using API

한편, API 를 통해서 가져오는 사용자 정보는 다음과 같습니다.

<person nsid="12037949754@N01" isadmin="0" ispro="0" iconserver="122" iconfarm="1">
	<username>bees</username>
	<realname>Cal Henderson</realname>
        <mbox_sha1sum>eea6cd28e3d0003ab51b0058a684d94980b727ac</mbox_sha1sum>
	<location>Vancouver, Canada</location>
	<photosurl>http://www.flickr.com/photos/bees/</photosurl> 
	<profileurl>http://www.flickr.com/people/bees/</profileurl> 
	<photos>
		<firstdate>1071510391</firstdate>
		<firstdatetaken>1900-09-02 09:11:24</firstdatetaken>
		<count>449</count>
	</photos>
</person>
참고 : http://www.flickr.com/services/api/flickr.people.getInfo.html
참고 : http://www.flickr.com/services/api/explore/?method=flickr.people.getInfo

person 엔티티의 Attribute로 nsid, iconserver, iconfarm을 제공합니다.
이것을 이용하면 Buddy Icon의 정확한 URL을 만들어 낼 수 있습니다.

하지만 .NET용 Flickr API Kit 소스(이하 FlickrNet)에는 문제가 있어서.
Silverlight에서 사용시 4001 (Image Error)를 유발합니다.


3. FlickNet Problem on Buddy Icon URL

아래는 수정 전 FlickrNet의 Person.cs 소스 일부입니다.

public Uri BuddyIconUrl
{
 get
 {
  if( IconServer == 0 )
   return new Uri("http://www.flickr.com/images/buddyicon.jpg");
  else
    return new Uri(String.Format("http://static.flickr.com/{0}/buddyicons/{1}.jpg", IconServer, UserId));
 }
}

피같은 IconFarm 정보를 사용하지 않고 있습니다. 소스를 아래와 같이 수정합니다.

public Uri BuddyIconUrl
{
 get
 {
  if( IconServer == 0 )
   return new Uri("http://www.flickr.com/images/buddyicon.jpg");
  else
    return new Uri(String.Format("http://farm{0}.static.flickr.com/{1}/buddyicons/{2}.jpg", IconFarm, IconServer, UserId));
 }
}

이제 더 이상 4001 에러를 보지 않아도 됩니다. ^^



FlickrNet 다운 받는 곳
http://www.codeplex.com/Wiki/View.aspx?ProjectName=FlickrNet
현재 2.1.4 Released 버전이 공개되어 있습니다.



설정

트랙백

댓글