- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
public class VKUrlManager
{
public static string API_URL = "http://api.vkontakte.ru/api.php";
public static string WithdrawVotes(int iVotes, int iUserID)
{
string sTime = "timestamp=" + DateTime.Now.ToFileTimeUtc();
string sRandom = "random=" + GE.Utils.GetRandom(int.MaxValue);
return API_URL + "?api_id=" + DA.AppConfig.ApiId
+ "&method=secure.withdrawVotes"
+ "&v=2.0"
+ "&" + sRandom
+ "&" + sTime
+ "&uid=" + iUserID
+ "&votes=" + iVotes
+ "&sig=" + GenerateSig(new string[]
{ "api_id=" + DA.AppConfig.ApiId, "v=2.0", "method=secure.withdrawVotes",
"uid=" + iUserID, "votes=" + iVotes,
sTime,sRandom
});
}
public static string GenerateSig(string[] aParams)
{
Array.Sort(aParams);
string s = "";
for(var i = 0; i< aParams.Length; i++)
s += aParams[i];
s += DA.AppConfig.ApiSecret;
return GE.Utils.GetMD5Hash(s);
}
}
главный метод во всех приложениях вконтакте, ради которого эти приложения, собственно, и пишутса!
ps:// по-моему говнокод
Lure Of Chaos 24.08.2010 18:12 # −1
Altravert 24.08.2010 18:49 # +1
Ну, мне форматирование строки, начиная с 10й довольно веселое. Что есще?
Lure Of Chaos 24.08.2010 18:51 # −1
Altravert 24.08.2010 18:53 # 0
Lure Of Chaos 24.08.2010 18:56 # −1
хотяя, как пользователю, то весьма приятно пользоваться
kainwinterheart 25.08.2010 02:28 # 0
Анонимус 25.08.2010 02:41 # 0
Популярность, к сожалению, ортогональна красивости кода
absolut 24.08.2010 22:02 # 0
>Что есще?
Ну, можно foreach в 29 строке сделать.
Анонимус 24.08.2010 18:55 # −1
так что через год они порвут контакт конечно, где дуров и его дрессированные хомячки творят килограммы говнокода
а вообще я ни в одной сети не сижу)
Lure Of Chaos 24.08.2010 19:01 # 0
а вот из зарубежных, фейсбук всем дает прикурить
xXx_totalwar 24.08.2010 19:13 # 0
у них вроде самописный jsp?
Анонимус 24.08.2010 19:24 # 0
Но что-то подсказывает мне что шаблонизация у них -- это не главное.
Nagg 24.08.2010 20:08 # +1
AxisPod 26.08.2010 13:05 # +1
3.14159265 26.08.2010 15:23 # 0
считайте меня кем угодно, но по-мойму format в данном случае не втему
у меня уже в давно привычку вошло решать эту задачу мапом вместо такого говна
+ "&" + sRandom
+ "&" + sTime
+ "&uid=" + iUserID
+ "&votes=" + iVotes
и собирать это спецметодом с локальным StringBuilder/Bufferом
Анонимус 26.08.2010 15:32 # 0
Он генерил URL по IDictionary
3.14159265 26.08.2010 19:27 # 0
мне кажется автор и о Dictionary может не знать )))
я во все проекты подтягиваю самописный класс для всяких хитрых сборок из мапов, массивов и набора разделителей
и неважно какая задача URLы (GET), POST-запросы, генерация js, регэксов, всяких тегов или еще на что хватит фантазии - все сводится к
1. получил мап
2. вызвал метод