Сразу говорю ВСЁ не проверял! Если найдёте ошибки (а они кажеться тут есть) то будем исправлять вместе! Писал что бы люди поняли основную идеюНу что же начнем:
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;
}
}
}
6. Создаем серверную часть(можно даже в блокноте) называем файл chat.php
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";
}
}
?>
8. Создаем серверную часть(можно даже в блокноте) называем файл vkapi_class.php(этот файл нарыл в гугле в нем я на 100% неуверен)
<?
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;
}
?>
9.Создаем серверную часть(можно даже в блокноте) называем файл crossdomain.xml (в гланую папку сервера)
<cross-domain-policy>
<allow-access-from domain="*.vkontakte.ru" />
<allow-access-from domain="*.vk.com" />
</cross-domain-policy>
10. Там где залили chat.php добавляем пустой chat.txt и разрешаем всё действия!
Для чего я писал если много ошибок? Затем что бы люди которые больше знают смогли исправить думаю эта статья поможет многим. Надеюсь на людей которые хоть немного исправят.