Пример кода (C #) для входа в flickr с помощью HttpWebRequest - PullRequest
0 голосов
/ 26 ноября 2009

Мне нужно, чтобы пользователи могли входить в нашу учетную запись flickr, используя имя пользователя и пароль учетной записи.

Я уже давно ищу в сети, но нашел только фрагменты реализации. У меня нет опыта работы с Http-звонками. Мне нужен полный пример. Вот код, который у меня есть:

HttpWebRequest http = WebRequest.Create(url) as HttpWebRequest;
http.Method = "POST";
http.ContentType = "application/x-www-form-urlencoded";
string postData = "FormNameForUserId=" + username + "&FormNameForPassword=" +  password;
byte[] dataBytes = UTF8Encoding.UTF8.GetBytes(postData);
http.ContentLength = dataBytes.Length;

using (Stream postStream = http.GetRequestStream())
{
    postStream.Write(dataBytes, 0, dataBytes.Length);
}

HttpWebResponse httpResponse = http.GetResponse() as HttpWebResponse;

Мои основные проблемы на данный момент, я думаю, это выяснить, что все параметры flickr требуются для входа "вы" в.

Любые предложения приветствуются

Ответы [ 4 ]

1 голос
/ 26 ноября 2009

API Flickr требует:

API Key 
Perms (Permissions: read, write, delete) 
Frob 
API Signature

Ваш URL будет выглядеть так:

http://flickr.com/services/auth/?api_key=[api_key]&perms=[perms]&frob=[frob]&api_sig=[api_sig]

Самый простой способ создать свой фроб и маркер - это Flickr.Net. Вот код, который делает это:

Flickr ourFlickr = new Flickr();

ourFlickr.ApiSecret = ApiSecret;
ourFlickr.ApiKey = ApiKey;

string signature = ApiSecret + "api_key" + ApiKey + "methodflickr.auth.getFrob";

string frob = ourFlickr.AuthGetFrob().ToString();

string url = "http://flickr.com/services/auth/?api_key=" + ourFlickr.ApiKey + "&perms=" + "read" + " &frob=" + frob + "&api_sig=" + signature;

Надеюсь, это поможет. Использование их API и интерфейса будет намного проще, чем попытка перепроектировать их веб-форму в любом случае.

1 голос
/ 26 ноября 2009

Вы можете попробовать использовать прокси, такой как Fiddler , чтобы проверить, что ваш браузер отправляет в запросе на вход.

Тем не менее, наилучшим подходом, вероятно, будет использование Flickr API . FlickNet - это .Net-оболочка для API.

1 голос
/ 26 ноября 2009

Удостоверьтесь, что вы установили http.AllowAutoRedirect = false; Это было источником двух часов для меня. Иногда почтовый запрос возвращает перенаправление на домашнюю страницу, когда вы вошли в систему. .NET auto следует за перенаправлением, но не отправляет вновь полученные файлы cookie. >. <</p>

1 голос
/ 26 ноября 2009

Взгляните на это: Flickr.net

...