Страница 2 из 4

Re: Метод постинга на стену

Добавлено: 28 окт 2010, 12:44
Guard-x
тот post запрос не работает( можешь мне кинуть руальную копию своего пост запроса?

Код: Выделить всё

 $.post(  upload_url, { photo: 'http://trvx.ru/jpg/notification.jpg' }, function(data){      hash = data.hash;      alert( hash ); });
по документации этот запрос должен нормально отрабатывать - в ответ ничего не приходит...
всё ж верно? мы посылаем пост запрос на полученный ранее upload_url( мне он приходит ), и послыаем на него пост запрос с параметром photo - по всей видимости ссыкой на файл, который нужно загрузить...

я в шоке просто - вчера целый вечер просидел безуспешно

Re: Метод постинга на стену

Добавлено: 28 окт 2010, 13:20
InsideZ
Я ошибся, ajax не может выполнять кросс-доменные запросы. Просто формируй post запрос на стороне своего сервера на php.

Еще, я так понимаю, что нескольким пользователям одновременно постить нельзя? Типа, чтоб не спамили.

Re: Метод постинга на стену

Добавлено: 28 окт 2010, 13:43
Guard-x
пробовал, посылал через либу CURL запрос: ответ тот же {"mid": "10125748", "gid": "0", "server": "11449", "photo": "", "hash": "8f44ed5e553d7379f174bad775a26c26"}

Re: Метод постинга на стену

Добавлено: 28 окт 2010, 14:02
InsideZ
все правильно, делай через CURL только, кроме указанного файла надо еще имя поля указать

Код: Выделить всё

$client->setFileUpload($cnf->path->images . 'yazdesbyl.png', 'photo');
где $cnf->path->images . 'yazdesbyl.png' - загружаемое изображение, а 'photo' - имя поля для изображения на стену.
2. Приложение формирует POST-запрос на полученный адрес.
Запрос должен содержать поле photo, которое содержит файл с изображением (JPG, PNG, BMP или GIF).
Согласен, документация к апи не с первого раза понятна :mrgreen:

Re: Метод постинга на стену

Добавлено: 28 окт 2010, 14:14
Guard-x
InsideZ писал(а):все правильно, делай через CURL только, кроме указанного файла надо еще имя поля указать

Код: Выделить всё

$client->setFileUpload($cnf->path->images . 'yazdesbyl.png', 'photo');
где $cnf->path->images . 'yazdesbyl.png' - загружаемое изображение, а 'photo' - имя поля для изображения на стену.
2. Приложение формирует POST-запрос на полученный адрес.
Запрос должен содержать поле photo, которое содержит файл с изображением (JPG, PNG, BMP или GIF).
Согласен, документация к апи не с первого раза понятна :mrgreen:

я вроде бы то и делаю(

Код: Выделить всё

 <?php     $upload_url = rawurldecode( $_POST[ 'upload_url' ] );        //инициализируем сеанс    $curl = curl_init();         //уcтанавливаем урл, к которому обратимся    curl_setopt($curl, CURLOPT_URL, $upload_url);         //передаем данные по методу post    curl_setopt($curl, CURLOPT_POST, 1);         //теперь curl вернет нам ответ, а не выведет    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);         //переменные, которые будут переданные по методу post    curl_setopt($curl, CURLOPT_POSTFIELDS, 'photo='.urlencode( 'http://trvx.ru/jpg/notification.jpg') );        //я не скрипт, я браузер опера    curl_setopt($curl, CURLOPT_USERAGENT, 'Opera 10.00');         $res = curl_exec($curl);         //проверяем, если ошибка, то получаем номер и сообщение    if(!$res)    {        $error = curl_error($curl).'('.curl_errno($curl).')';        echo $error;    }    //если не ошибка, то выводим результат    else{        echo $res;    }         curl_close($curl);     ?> 
curl_setopt($curl, CURLOPT_POSTFIELDS, 'photo='.urlencode(file_get_contents( 'http://trvx.ru/jpg/notification.jpg' ) ) ); // так тоже пробовал - то же самое в ответ - {"mid": "10125748", "gid": "0", "server": "11449", "photo": "", "hash": "8f44ed5e553d7379f174bad775a26c26"}

Re: Метод постинга на стену

Добавлено: 28 окт 2010, 15:10
InsideZ

Код: Выделить всё

curl_setopt($curl, CURLOPT_POSTFIELDS, 'photo='.urlencode( 'http://trvx.ru/jpg/notification.jpg') );
c CURL никогда не работал, но точно знаю что в этой строке что-то не так. Советую не через CURL делать, тем более, что ты его как браузер показываешь. В личку ссылку кидаю на пример.

Re: Метод постинга на стену

Добавлено: 28 окт 2010, 22:59
altermann
Товарищ InsideZ привел скрипт, который заливает имагу на сервак контакта, ориентированный на Zend. Если кому нужно, то вот скрипт на пыхе с использованием всеми любимого курла:

Код: Выделить всё

<?php if (isset($_POST["upload_url"])) {    $upload_url = $_POST["upload_url"];        $post_params['photo'] = '@'.'wallimage.jpg';     $ch = curl_init();    curl_setopt($ch, CURLOPT_URL, $upload_url);    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);    curl_setopt($ch, CURLOPT_POST, true);    curl_setopt($ch, CURLOPT_POSTFIELDS, $post_params);    $result = curl_exec($ch);    curl_close($ch);        //var_dump($result);    $result = json_decode($result);        $mess = array (server => $result->server, photo=> $result->photo, hash => $result->hash);        echo json_encode($mess);    }
это именно тот скрипт, к которому обращается InsideZ в самом первом посте - index/uploadimage
Для тех, кто не шарит как юзать, поясню: обзываете файл скрипт как-нить, типа uploadimage.php, кидаете его в одну папку со скриптом апи, в ту же папку файл картинки wallimage.jpg. Собственно усе. А, еще немного, в строке запроса к апи (первый пост):

Код: Выделить всё

$.post(                // отправляю со своего сервера изображение на upload_url                'index/uploadimage',                {upload_url:data.response.upload_url},
меняем index/uploadimage на имя нашего скрипта - uploadimage.php

Скрипт простейший и для многих это чушь, но много таких, кто не шарит как это сделать )

Re: Метод постинга на стену

Добавлено: 28 окт 2010, 23:01
altermann
оу, что-то я не заметил вторую страницу с похожим скриптом =)

тем не менее, мой код сто пудов рабочий =)

Re: Метод постинга на стену

Добавлено: 01 ноя 2010, 10:52
oleamm
InsideZ писал(а):Guard-x
Кстати, а без загрузки фото у кого-нибудь получалось отправить сообщение на стену?
Присоединяюсь к вопросу. Что, просто отправить сообщение без картинки нельзя?

Ладно, сделал пока с картинкой. При клике на нее открывается мое приложение по ссылке вида http://vkontakte.ru/app1234_007?from_id=007
Но со стены приложение так и не запускается, белое поле и все. Если перейти по ссылке под этим белым полем "Перейти к приложению" то на новой странице приложение нормально запустится.

Re: Метод постинга на стену

Добавлено: 01 ноя 2010, 22:20
Александр
oleamm писал(а):Что, просто отправить сообщение без картинки нельзя?
Методом wall.savePost нельзя.
Можно методом wall.post. Но он доступен только Desktop-приложениям.