Люди помогите сделать 4ат в приложении!!!!!!!
Re: Люди помогите сделать 4ат в приложении!!!!!!!
В этом ты прав но ты же не администратор сайта!!! Так что уникальность картинок себя оправдывает!!! Я пока учусь!!!
Re: Люди помогите сделать 4ат в приложении!!!!!!!
Ну поэтому и только проверено =)
Re: Люди помогите сделать 4ат в приложении!!!!!!!
Сразу говорю ВСЁ не проверял! Если найдёте ошибки (а они кажеться тут есть) то будем исправлять вместе! Писал что бы люди поняли основную идею
Ну что же начнем:
1.Создаем компонент TextArea и называем mytext.
Для тех кто незнает где найти компонент ===> Нажимаем Ctrl+F7
2.Создаем компонент Input Text и называем input_chat
Для тех кто незнает где найти компонент ===> Нажимаем Ctrl+F7
3. К пример этот файл .fla называем chat и сохраняем.
4.Создаем документ chat.as и в chat.fla к Class пишем chat.as
5. Пишем внутрь:
6. Создаем серверную часть(можно даже в блокноте) называем файл chat.php
7. Код chat.php :
8. Создаем серверную часть(можно даже в блокноте) называем файл vkapi_class.php(этот файл нарыл в гугле в нем я на 100% неуверен)
9.Создаем серверную часть(можно даже в блокноте) называем файл crossdomain.xml (в гланую папку сервера)
10. Там где залили chat.php добавляем пустой chat.txt и разрешаем всё действия!
Для чего я писал если много ошибок? Затем что бы люди которые больше знают смогли исправить думаю эта статья поможет многим. Надеюсь на людей которые хоть немного исправят.
Ну что же начнем:
1.Создаем компонент TextArea и называем mytext.
Для тех кто незнает где найти компонент ===> Нажимаем Ctrl+F7
2.Создаем компонент Input Text и называем input_chat
Для тех кто незнает где найти компонент ===> Нажимаем Ctrl+F7
3. К пример этот файл .fla называем chat и сохраняем.
4.Создаем документ chat.as и в chat.fla к Class пишем chat.as
5. Пишем внутрь:
Код: Выделить всё
package {
import flash.display.*;
import flash.text.*;
import flash.events.*;
import flash.utils.*;
import flash.net.*;
import flash.events.KeyboardEvent;
import flash.display.Stage;
public class chat extends Sprite {
public function chat() {
var params:Object = LoaderInfo(this.root.loaderInfo).parameters;
chat();
setInterval(chat, 3000);
input_chat.addEventListener(KeyboardEvent.KEY_DOWN, keydown);
function keydown(event:KeyboardEvent) {
if (event.keyCode==13) {
var php_loader:URLLoader = new URLLoader();
var php_request:URLRequest = new URLRequest("путь к chat.php");
php_request.method = URLRequestMethod.POST;
var php_vars:URLVariables = new URLVariables();
php_vars['auth_key'] = params['auth_key'];
php_vars['viewer_id'] = params['viewer_id'];
php_vars['message'] = input_chat.text;
input_chat.text = "";
php_request.data = php_vars;
php_loader.load(php_request);
php_loader.addEventListener(Event.COMPLETE, onServAnsChat);
}
}
}
public function chat() {
var params:Object = LoaderInfo(this.root.loaderInfo).parameters;
var php_loader:URLLoader = new URLLoader();
var php_request:URLRequest = new URLRequest("путь к chat.phpp");
php_request.method = URLRequestMethod.POST;
var php_vars:URLVariables = new URLVariables();
php_vars['auth_key'] = params['auth_key'];
php_vars['viewer_id'] = params['viewer_id'];
php_request.data = php_vars;
php_loader.addEventListener(Event.COMPLETE, onServAnsChat);
php_loader.load(php_request);
}
private function onServAnsChat(e:Event):void {
var loader:URLLoader = URLLoader(e.target);
//this.mytext.text = loader.data;
this.mytext.htmlText = loader.data;
}
private function explode(separator:String, string:String) {
var list = new Array();
if (separator == null) {
return false;
}
if (string == null) {
return false;
}
var currentStringPosition = 0;
while (currentStringPosition<string.length) {
var nextIndex = string.indexOf(separator, currentStringPosition);
if (nextIndex == -1) {
break;
}
var word = string.slice(currentStringPosition, nextIndex);
list.push(word);
currentStringPosition = nextIndex+1;
}
if (list.length<1) {
list.push(string);
} else {
list.push(string.slice(currentStringPosition, string.length));
}
return list;
}
}
}
7. Код chat.php :
Код: Выделить всё
<?
$app_id = id приложения;
$api_secret = "ключ от вкладки Платежи";
$api_public = "секретный ключ";
include(" vkapi_class.php");
$auth_key = $_POST['auth_key'];
$viewer_id = $_POST['viewer_id'];
$message = $_POST['message'];
$real_key = md5($app_id . "_" . $viewer_id . "_" . $api_secret);
if ($auth_key == $real_key){
if ($message){
$name = name_user($app_id, $api_public, $viewer_id);
file_put_contents("chat.txt", "<b><u><a href='http://vkontakte.ru/id$viewer_id'>$name</a></u></b>: $message\r", 6666);
}
$messages = explode("\r", file_get_contents("chat.txt"));
$how = count($messages);
if ($how>20){
$from = $how - 20;
} else {
$from = 0;
}
for ($i=$from; $i<$how; $i++){
print "{$messages[$i]}\n";
}
}
?>
Код: Выделить всё
<?
function get_app_balance($api_id, $api_secret){
$request = Array();
$request[] = "api_id=$api_id";
$request[] = "method=secure.getAppBalance";
$request[] = "timestamp=" . (time() + 172814);
$request[] = "random=" . rand(1000, 100000);
$request[] = "v=2.0";
array_multisort($request);
$sig = "";
foreach ($request as $r){
$sig .= $r;
}
$sig .= $api_secret;
$sig = md5($sig);
$request[] = "sig=$sig";
$req = "";
foreach ($request as $r){
$req .= "$r&";
}
$result = file_get_contents("http://api.vkontakte.ru/api.php?$req");
file_put_contents("log.txt", "$result\r\n\r\n", 6666);
preg_match('/<balance>(.*?)<\/balance>/', $result, $out);
return (int)$out[1];
}
function get_user_balance($app_id, $api_secret, $uid){
$request = Array();
$request[] = "api_id=$app_id";
$request[] = "method=secure.getBalance";
$request[] = "timestamp=" . (time() + 172814);
$request[] = "random=" . rand(1000, 100000);
$request[] = "v=2.0";
$request[] = "uid=$uid";
array_multisort($request);
$sig = "";
foreach ($request as $r){
$sig .= $r;
}
$sig .= $api_secret;
$sig = md5($sig);
$request[] = "sig=$sig";
$req = "";
foreach ($request as $r){
$req .= "$r&";
}
$result = file_get_contents("http://api.vkontakte.ru/api.php?$req");
file_put_contents("log.txt", "$result\r\n\r\n", 6666);
preg_match('/<balance>(.*?)<\/balance>/', $result, $out);
return (int)$out[1];
}
function transfer_app_user($app_id, $api_secret, $uid, $votes){
$request = Array();
$request[] = "api_id=$app_id";
$request[] = "method=secure.addVotes";
$request[] = "timestamp=" . (time() + 172814);
$request[] = "random=" . rand(1000, 100000);
$request[] = "v=2.0";
$request[] = "uid=$uid";
$request[] = "votes=$votes";
array_multisort($request);
$sig = "";
foreach ($request as $r){
$sig .= $r;
}
$sig .= $api_secret;
$sig = md5($sig);
$request[] = "sig=$sig";
$req = "";
foreach ($request as $r){
$req .= "$r&";
}
$result = file_get_contents("http://api.vkontakte.ru/api.php?$req");
file_put_contents("log.txt", "$result\r\n\r\n", 6666);
preg_match('/<transferred>(.*?)<\/transferred>/', $result, $out);
return (int)$out[1];
}
function transfer_user_app($app_id, $api_secret, $uid, $votes){
$request = Array();
$request[] = "api_id=$app_id";
$request[] = "method=secure.withdrawVotes";
$request[] = "timestamp=" . (time() + 172814);
$request[] = "random=" . rand(1000, 100000);
$request[] = "v=2.0";
$request[] = "uid=$uid";
$request[] = "votes=$votes";
array_multisort($request);
$sig = "";
foreach ($request as $r){
$sig .= $r;
}
$sig .= $api_secret;
$sig = md5($sig);
$request[] = "sig=$sig";
$req = "";
foreach ($request as $r){
$req .= "$r&";
}
$result = file_get_contents("http://api.vkontakte.ru/api.php?$req");
file_put_contents("log.txt", "$result\r\n\r\n", 6666);
preg_match('/<transferred>(.*?)<\/transferred>/', $result, $out);
return (int)$out[1];
}
function name_user($app_id, $api_secret, $user_id){
$request = Array();
$request[] = "api_id=$app_id";
$request[] = "method=getProfiles";
$request[] = "uids=$user_id";
$request[] = "v=2.0";
$request[] = "test_mode=1";
array_multisort($request);
$sig = "";
foreach ($request as $r){
$sig .= $r;
}
$sig = "3975390" . $sig . $api_secret;
$sig = md5($sig);
$request[] = "sig=$sig";
$req = "";
foreach ($request as $r){
$req .= "$r&";
}
$result = file_get_contents("http://api.vkontakte.ru/api.php?$req");
preg_match("/<first_name>(.*?)<\/first_name>/", $result, $out);
$fname = $out[1];
preg_match("/<last_name>(.*?)<\/last_name>/", $result, $out);
$lname = $out[1];
$name = "$fname $lname";
//$name = iconv("UTF-8", "WINDOWS-1251", $name);
return $name;
}
?>
Код: Выделить всё
<cross-domain-policy>
<allow-access-from domain="*.vkontakte.ru" />
<allow-access-from domain="*.vk.com" />
</cross-domain-policy>
Для чего я писал если много ошибок? Затем что бы люди которые больше знают смогли исправить думаю эта статья поможет многим. Надеюсь на людей которые хоть немного исправят.
Последний раз редактировалось Deniska 02 дек 2009, 20:51, всего редактировалось 1 раз.
Re: Люди помогите сделать 4ат в приложении!!!!!!!
+++
Последний раз редактировалось VIP 05 дек 2009, 19:15, всего редактировалось 1 раз.
Re: Люди помогите сделать 4ат в приложении!!!!!!!
Не проверял весь код, но заметил:
Нужно не crossdomain.php, а crossdomain.xml9.Создаем серверную часть(можно даже в блокноте) называем файл crossdomain.php(в гланую папку сервера)
Re: Люди помогите сделать 4ат в приложении!!!!!!!
всё равно не работает чат, я в поисках идеи потом залью когда будет работать
Re: Люди помогите сделать 4ат в приложении!!!!!!!
а вот я сейчас не могу понять, как определить, что пользователь вышел. (вход то понятно - по сообщению или регистрировать в своей бд на своём сервере)
Re: Люди помогите сделать 4ат в приложении!!!!!!!
Rembrant
Делать из приложения запрос к серверу каждую минуту (или меньше). Если от пользователя нет запроса, то пользователь вышел.
Делать из приложения запрос к серверу каждую минуту (или меньше). Если от пользователя нет запроса, то пользователь вышел.
Re: Люди помогите сделать 4ат в приложении!!!!!!!
да, наверно только так, хоть это и не очень хорошо. бо если делать запросы нечасто, будет выводиться устаревшая информация, а если часто, можно и сервер положить)