Кросспостинг вКонтакт

чуть чуть доделать осталось

#1 30 июля 2011 в 05:02
итак, вот что есть

функция авторизации
  1. function _auth( $cookies ) {
  2. $e = urlencode('my@email.ru'); //mail
  3. $p = urlencode('password'); //password
  4. $c = curl_init();
  5. $s = 'act=login&q=1&al_frame=1&expire=&captcha_sid=&captcha_key=&from_host=vkontakte.ru&email=' . $e . '&pass=' . $p;
  6. curl_setopt($c, CURLOPT_URL,'http://login.vk.com/?act=login');
  7. curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
  8. curl_setopt($c, CURLOPT_FOLLOWLOCATION, 1);
  9. curl_setopt($c, CURLOPT_COOKIEJAR, $cookies);
  10. curl_setopt($c, CURLOPT_POST, 1);
  11. curl_setopt($c, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13)');
  12. curl_setopt($c, CURLOPT_POSTFIELDS, $s);
  13. $r = curl_exec($c);
  14. }
функция получения ID
  1. function _params($cookies) {
  2. $c = curl_init();
  3. curl_setopt($c, CURLOPT_HEADER, 1);
  4. curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
  5. curl_setopt($c, CURLOPT_REFERER, 'http://vkontakte.ru/settings.php');
  6. curl_setopt($c, CURLOPT_FOLLOWLOCATION, 1);
  7. curl_setopt($c, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13');
  8. curl_setopt($c, CURLOPT_COOKIEJAR, $cookies);
  9. curl_setopt($c, CURLOPT_COOKIEFILE, $cookies);
  10. curl_setopt($c, CURLOPT_URL, 'http://vkontakte.ru/');
  11. $r = curl_exec($c);
  12.  
  13. preg_match_all('/"post_hash":"(\w+)"/i', $r, $f1);
  14. preg_match_all('/"user_id":(\d+),/i', $r, $f2);
  15. preg_match_all('/handlePageParams\(\{"id":(\d+),/i', $r, $f3);
  16. return $f = array(
  17. 'post_hash' => $f1[1][0],
  18. 'user_id' => $f2[1][0],
  19. 'my_id' => $f3[1][0]);
  20. }
функция создания сообщения
  1. function _status($cookies, $hash, $url, $message, $title, $descr, $id) {
  2. $u = urlencode($url);
  3. $m = urlencode($message);
  4. $t = urlencode($title);
  5. $d = urlencode($descr);
  6. $q = 'act=post&al=1&hash=' . $hash . '&message=' . $m . '&note_title=&official=&status_export=&to_id=' . $id . '&type=all&media_type=share&url=' . $u . '&title=' . $t . '&description=' . $d;
  7. $c = curl_init();
  8. curl_setopt($c, CURLOPT_HEADER, 0);
  9. curl_setopt($c, CURLOPT_HTTPHEADER, array('X-Requested-With: XMLHttpRequest'));
  10. curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
  11. curl_setopt($c, CURLOPT_POST, 1);
  12. curl_setopt($c, CURLOPT_REFERER, 'http://vkontakte.ru/id'.$id);
  13. curl_setopt($c, CURLOPT_FOLLOWLOCATION, 1);
  14. curl_setopt($c, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13');
  15. curl_setopt($c, CURLOPT_POSTFIELDS, $q);
  16. curl_setopt($c, CURLOPT_COOKIEJAR, $cookies);
  17. curl_setopt($c, CURLOPT_COOKIEFILE, $cookies);
  18. curl_setopt($c, CURLOPT_TIMEOUT, 15);
  19. curl_setopt($c, CURLOPT_CONNECTTIMEOUT, 15);
  20. curl_setopt($c, CURLOPT_URL, 'http://vkontakte.ru/al_wall.php');
  21. $r = curl_exec($c);
  22.  
  23. return $r;
  24. }
общая функция
  1. function vkPost($url='http://site.ru/', $message='message', $title='title', $descr='descr') {
  2. $o = 'aqwdhfyrfd.txt';
  3. $h = _params($o, 'http://vkontakte.ru/id1', true);
  4.  
  5. if($h['my_id'] == 0) {
  6. _auth($o, $d, true);
  7. $h = _params($o, 'http://vkontakte.ru/id1', true);
  8. }
  9.  
  10. if($h['my_id'] != 0) {
  11. $r = _status($o, $h['post_hash'], $url, $message, $title, $descr, $h['user_id']);
  12. $c = preg_match_all('/page_wall_count_all/smi',$r,$f);
  13. if( $c == 0 ) {
  14. return false;
  15. } else {
  16. return true;
  17. }
  18. }
  19. }
Может ли ктонибудь завязать это с instantCMS ?😊

например для Wordpress в функциях темы достаточно накидать такие строчки
  1. function wp_vk_post_add($post_ID) {
  2. $post = get_post($post_ID);
  3. $title = $post->post_title;
  4. $link = get_permalink($post_ID);
  5. $descr = $post->post_content;
  6. $vkont = get_post_meta($post_ID, 'vkontakte', true);
  7.  
  8. if(mb_strlen(trim($descr), 'UTF-8') >= 250) {
  9. $descr = strip_tags($descr);
  10. $descr = mb_substr($descr,0,250, 'UTF-8').'...';
  11. }
  12. $message = 'Текст песни ' . $title;
  13. if(mb_strlen(trim($message), 'UTF-8') >= 250) {
  14. $message = mb_substr($message,0,250, 'UTF-8').'...';
  15. }
  16. if(mb_strlen(trim($title), 'UTF-8') >= 78) {
  17. $title = mb_substr($title,0,78, 'UTF-8').'...';
  18. }
  19. if($vkont != '1') {
  20. $status = vkPost($link, $message, $title, $descr);
  21. if($status) {
  22. update_post_meta($post_ID, 'vkontakte','1');
  23. } else {
  24. update_post_meta($post_ID, 'vkontakte','0');
  25. }
  26. }
  27. return $post_ID;
  28. }
  29. add_action('publish_post', 'wp_vk_post_add');
  30.  
#2 3 октября 2011 в 16:39
завяжу в своём модуле… посмотрим только как…
#3 15 ноября 2011 в 09:34
получилось чего?
#4 28 ноября 2011 в 16:52
у кого-нить есть решение?
#5 27 июня 2012 в 19:55
гляну мне тоже надо)))
#6 27 июня 2012 в 20:08
Нужна функция для постинга в группу ВК)
#7 27 июня 2012 в 20:58
Все, делаю плагин для автопостинга в группу
#8 27 июня 2012 в 21:15

Все, делаю плагин для автопостинга в группу

CozaNostra
Правильное решение! smile
#9 27 июня 2012 в 23:14
В принципе все работает кроме передачи картинки...
Не хочет контакт ее принимать.

Еще покапаю, может получится
#10 6 июля 2012 в 11:50
Как продвигаются дела с допиливанием напильником?
#11 29 августа 2012 в 07:34
есть платный вариант на апи www.plati.ru/asp/pay.asp?idd=1364424

так же там есть ссылки для тестов

(лимит сообщений от того что домен второго уровня и бесплатный хостинг)
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.