Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > API приложений и сред

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 12.12.2009, 14:30
FW7 вне форума Посмотреть профиль Отправить личное сообщение для FW7 Найти все сообщения от FW7
  № 1  
Ответить с цитированием
FW7

Регистрация: Sep 2009
Сообщений: 37
По умолчанию error_msg: Incorrect signature

вот основной класс тестового приложения
Код AS3:
package  
{
	// путь до библиотеки мд5, для просчета сигнатуры запроса к АПИ
	import com.adobe.crypto.MD5;
 
	import flash.display.*;
	import flash.events.*;
	import flash.net.*;
 
	/**
	 * Class TestAPI Тестовый запрос к АПИ ВКонтакте и вывод списка друзей пользователя
	 * @author Yuriy (Mur4ik) Kulkoff
	 * @version 0.1
	 * @date 26.07.2009
	 */
	public class testAPI extends Sprite
	{
		//ID приложения
		var apiID:String = "735931";
		//Секретный ключ приложения
		var secret:String = "SZvqkJwYoE";
		//режим тестирования(0-выключен,1-включен)
		var testMode:String = "1";
		// Юзер, список друзей которого нужно вывести
		// В данном случае берем юзера просматривающего рпиложение
		var viewerID:String = root.loaderInfo.parameters.viewer_id;
 
		private var friendsList:XML;
 
		public function testAPI() 
		{
			if (stage) getFriends(null);
			else addEventListener(Event.ADDED_TO_STAGE, getFriends);
		}
 
		public function getFriends(event:Event):void 
		{
			var r:URLRequest = new URLRequest("http://api.vkontakte.ru/api.php");
			var l:URLLoader = new URLLoader();
			var v:URLVariables = new URLVariables();
			// Необходимый метод изи АПИ
			//var methodFromAPI:String = "getFriends";
			var methodFromAPI:String = "audio.get";
			// Для тестов не локально должно быть 0
 
			v.api_id = apiID;
			v.aids = "66160268";
			v.v = "2.0"; // Версия АПИ
			v.method = methodFromAPI;
			v.aids = "62484093";
			v.test_mode = testMode;
			v.sig = MD5.hash(viewerID + 'api_id=' + apiID + 'method=' + methodFromAPI + 'test_mode=' + testMode + 'v=2.0' + secret);
 
			r.data = v;
			r.method = URLRequestMethod.GET;
 
			l.load(r);
			l.addEventListener(Event.COMPLETE, loader_completeHandler);
		}
 
		private function loader_completeHandler(event:Event):void
		{
			friendsList = new XML(event.target.data);
 
			// Выводим ID друзей
			friendsList.*.( trace(name() + ": " + toString()) );
 
		}
	}
}
я хочу вывести ОДНУ аудиозапись,но выдается ошибка 4. если убрать строку v.aids = "66160268";,то все работает. что я не так делаю?

Старый 12.12.2009, 15:13
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 2  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
В подписи не все параметры. aids нужно добавить.

У меня чего-то testMode, вообще, отказывается работать в последние два дня. Не могу понять в чем проблема. Любой запрос возвращает ошибку 4 (неправильная сигнатура) и этот пример тоже, если заливаешь на хост, ничего при этом не меняя, то все начинает работать как положено.

Старый 12.12.2009, 15:17
FW7 вне форума Посмотреть профиль Отправить личное сообщение для FW7 Найти все сообщения от FW7
  № 3  
Ответить с цитированием
FW7

Регистрация: Sep 2009
Сообщений: 37
Цитата:
В подписи не все параметры. aids нужно добавить.
В каком смысле?я же написал v.aids = "62484093";

Старый 12.12.2009, 15:23
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 4  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Код AS3:
v.sig = MD5.hash(viewerID + 'aids=' + '62484093' + 'api_id=' + apiID + 'method=' + methodFromAPI + 'test_mode=' + testMode + 'v=2.0' + secret);
//

Старый 12.12.2009, 17:20
FW7 вне форума Посмотреть профиль Отправить личное сообщение для FW7 Найти все сообщения от FW7
  № 5  
Ответить с цитированием
FW7

Регистрация: Sep 2009
Сообщений: 37
понял,спасибо. надо было мне документацию внимательней читать)))

Старый 05.01.2010, 02:17
sandy5 вне форума Посмотреть профиль Отправить личное сообщение для sandy5 Найти все сообщения от sandy5
  № 6  
Ответить с цитированием
sandy5

Регистрация: Jan 2010
Сообщений: 2
так. не помню где это на форуме было, но хочу вернуться к прежней задаче: вывод в trace список друзей вконтакте. во первых у меня флешь CS4 ругается на эту строчку: 1172: Definition com.adobe.crypto:MD5 could not be found. (import com.adobe.crypto.MD5
а потом на это: 1061: Call to a possibly undefined method hash through a reference with static type Class.

вот исходный код:

Код AS3:
package
{
// путь до библиотеки мд5, для просчета сигнатуры запроса к АПИ
import com.adobe.crypto.MD5;
 
import flash.display.*;
import flash.events.*;
import flash.net.*;
 
/**
* Class TestAPI Тестовый запрос к АПИ ВКонтакте и вывод списка друзей пользователя
* @author Yuriy (Mur4ik) Kulkoff
* @version 0.1
* @date 26.07.2009
*/
public class TestAPI extends Sprite
{
private var friendsList:XML;
 
public function TestAPI()
{
if (stage) getFriends(null);
else addEventListener(Event.ADDED_TO_STAGE, getFriends);
}
 
public function getFriends(event:Event):void
{
var r:URLRequest = new URLRequest("http://api.vkontakte.ru/api.php");
var l:URLLoader = new URLLoader();
var v:URLVariables = new URLVariables();
 
// Юзер, список друзей которого нужно вывести
// В данном случае берем юзера просматривающего рпиложение
var viewerID:String = root.loaderInfo.parameters.viewer_id;
//ID приложения
var apiID:String = "1776421";
//Секретный ключ приложения
var secret:String = "4NvIhgWvkm";
// Необходимый метод изи АПИ
var methodFromAPI:String = "getFriends";
// Для тестов не локально должно быть 0
var testMode:String = "1";
 
v.api_id = apiID;
v.v = "2.0"; // Версия АПИ
v.method = methodFromAPI;
v.test_mode = testMode;
v.sig = MD5.hash(viewerID + 'api_id=' + apiID + 'method=' + methodFromAPI + 'test_mode=' + testMode + 'v=2.0' + secret);
 
r.data = v;
r.method = URLRequestMethod.POST;
 
l.load(r);
l.addEventListener(Event.COMPLETE, loader_completeHandler);
}
 
private function loader_completeHandler(event:Event):void
{
friendsList = new XML(event.target.data);
 
// Выводим ID друзей
friendsList.*.( trace(name() + ": " + toString()) );
 
// Далее по этим ID можно узнать более подробную информацию
// с помошью метода getProfiles из АПИ
}
}
}
ну эт еще ладно. я нашел решение(чисто не по человечески)

убрал строчку import com.adobe.crypto.MD5;
и исправил другую на v.sig = MD5.encrypt(viewerID + 'api_id=' + apiID + 'method=' + methodFromAPI + 'test_mode=' + testMode + 'v=2.0' + secret); , благо у меня есть файл MD5.as но мне почему то все равно флеш выдает ошибку error_code: 4
error_msg: Incorrect signature. кто нибудь может выложить исходник или хотя бы подсказать, почему неправильно?

Добавлено через 46 минут
ага. хоть как то разобрался с ошибкой import com.adobe.crypto.MD5;

теперь все вроде правильно, но пишет 1061: Call to a possibly undefined method hash through a reference with static type Class. никто не подскажет в чем я не прав?))

Старый 05.01.2010, 08:46
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 7  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Где это файл (MD5.as) у вас лежит? И что это, вообще, за класс? com.adobe.crypto.MD5?

Старый 05.01.2010, 13:33
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 8  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
1. Посмотрите package класса MD5.
2. Если он пустой (просто "package" и сразу фигурная скобка { ) - навряд ли это адобовский класс - проверьте, есть ли у него public static function hash().
Я, к примеру, долгое время пользовался другим классом MD5 и у него были совсем другие названия методов.
3. Если же package - адобовский com.adobe.crypto, то Вам надо в директории проекта создать соответствующую директорию com/adobe/crypto, в которую уже положить файл MD5.as, и снова написать импорт в начале пакета, как в приведенном здесь примере кода.
__________________
Reality.getBounds(this);

Старый 05.01.2010, 14:26
sandy5 вне форума Посмотреть профиль Отправить личное сообщение для sandy5 Найти все сообщения от sandy5
  № 9  
Ответить с цитированием
sandy5

Регистрация: Jan 2010
Сообщений: 2
ответ udaaff'u: файло MD5 можно скачать отсюда: http://fsca.ru/flash/vkontakte/vksender/vksender.rar. в архиве возьми папку "com". оттуда и будет класс import com.adobe.crypto.MD5;

вопрос ко всем:
предисловие: ну хорошо. все разобрался. теперь он почему то только моих друзей показывает вконтакте.
сам вопрос: как сделать так, чтобы он и у других юзеров показывал друзей? когда я пишу var viewerID:Numer = (ид другого человека, который разрешил все действия приложению), то опять выдает ошибку неправильной сигнатуры

Старый 06.01.2010, 23:13
chabapok вне форума Посмотреть профиль Отправить личное сообщение для chabapok Найти все сообщения от chabapok
  № 10  
Ответить с цитированием
chabapok

Регистрация: Jul 2009
Сообщений: 240
Записей в блоге: 1
никак. запукать должно от имени того юзера, в кукисы должны быть того юзера и тд.
Узнать можно только друзей человека, от имени которого запущено приложение, если тот в настройках разрешил. Если все таки очень нужно -- через свой сервер в своей бд пересохранять эти списки.

Создать новую тему Ответ Часовой пояс GMT +4, время: 09:31.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 09:31.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.