0

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

4 に答える 4

1

これを見てください: Flickr.net

于 2009-11-25T23:33:35.693 に答える
1

Fiddlerなどのプロキシを使用して、ブラウザがログイン リクエストで何を送信しているかを調べることができます。

ただし、最善の方法は、代わりにFlickr APIを使用することです。FlickNetは、API の .Net ラッパーです。

于 2009-11-25T23:36:04.583 に答える
1

必ず設定http.AllowAutoRedirect = false;してください。それが私にとって2時間のヘッドバンギングの原因でした。ログインすると、ポスト リクエストがホームページへのリダイレクトを返すことがあります。.NET 自動はリダイレクトに従いますが、新しく取得した Cookie は送信しません。>.<

于 2009-11-25T23:39:26.010 に答える
1

Flickr API には以下が必要です。

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;

これが役立つことを願っています。Web フォームをリバース エンジニアリングするよりも、API とインターフェイスを使用する方がはるかに簡単です。

于 2009-11-26T03:37:42.490 に答える