ASP.NET:flickr PhotosSetMeta проблемы - PullRequest
0 голосов
/ 20 марта 2012

У меня странная проблема.Я написал код с Flickr API, который меняет название и описание фотографии.Теперь моя проблема в том, что код работает только тогда, когда я отлаживаю его (пошаговое выполнение).

Если я запускаю его без отладки, он выдает Invalid frob (108)

Это не имеет никакого смысла для меня.

вот код:

flicker = new Flickr(key, secret);
            FlickrNet.Cache.CacheDisabled = true;

            string frob = flicker.AuthGetFrob();
            string flickrUrl = flicker.AuthCalcUrl(frob, AuthLevel.Write);

            ProcessStartInfo procInfo =new ProcessStartInfo(flickrUrl);
            Process.Start(procInfo);

            Auth auth = new Auth();
            auth.Permissions = AuthLevel.Write;
            auth = flicker.AuthGetToken(frob);

            flicker.PhotosSetMeta("6959366981", "Title:KODO", "Descreption:SPOPOIDO");

Код подключается к flickr, перенаправляет пользователя на страницу flickr, которая просит пользователя принять изменения в своем профиле, и, если они принимаютэто, он меняет название и описание одной фотографии.

Я думаю, проблема в том, что в режиме отладки соединение остается открытым, поэтому все происходит за один вызов, но в обычном режиме выполняется flickr auth = flicker.AuthGetToken(frob); в то же время пользователь пытается выполнить «принять» на странице flickr.

мой вопрос:

  • могу ли я выполнить аутентификацию программным способом, чтобы яВам не нужно перенаправлять страницу каждый раз?

  • Есть ли способ сохранить соединение открытым во время выполнения кода?(я даже не уверен, что это возможно)

1 Ответ

0 голосов
/ 21 марта 2012

хорошо, я получил это на работу!

1.Вы должны проверить, является ли ваше приложение в мерцании веб-приложением. 2. вам нужно убедиться, что вы получили URL обратного вызова.

если это так, вам нужно создать 2 файла aspx:

1: для аутентификации:

flicker = new Flickr(key, secret);
        FlickrNet.Cache.CacheDisabled = true;

        string flickrUrl = flicker.AuthCalcWebUrl(AuthLevel.Write);
        Response.Redirect(flickrUrl);
        //(the user will be ask to accept making changes on his account once if every thing is working)

2.для отправки (пользователь будет перенаправлен на эту страницу после первой части)

flicker = new Flickr(key, secret);
        FlickrNet.Cache.CacheDisabled = true;
        frob = Request.QueryString["frob"];

        Auth auth = flicker.AuthGetToken(frob);

        auth.Permissions = AuthLevel.Write;

        flicker.PhotosSetMeta("6959366981",TextBox1.Text, TextBox2.Text);
   // PhotosSetMeta(img_id,title,descreption) this function change 1 image (by id) its title and descreption

если вы видите какие-либо ошибки в коде или mybee лучший способ сделать это, пожалуйста, отредактируйте его, как вы будете (я довольно новичок в asp.net).

если это не работает для вас, проверьте: http://flickrnet.codeplex.com/discussions я получил там помощь.

Я надеюсь, что Сомоне найдет это usfule:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...