Pull to refresh

Comments 75

Нужно бы еще добавить проверку возвращаемых результатов, например, $twitter->userTimeline() может и false возвращать. Как результат, при каких-то траблах со стороны твиттера (который в последнее время опять нестабилен), статус vkontakte будет удалятся.
Вы бы хоть пароли свои с конфига убрали, не все ведь такие честные, что ими не воспользуются.
Спасибо. Это моя огромная ошибка, больше не буду такие вещи делать в 5 утра )
Понимаю что API, но все равно объем кода на PHP радует :)
я сначала думал, что там будет на 120Кб :) Оказалось курл положили :)
Пытюсь запустить ма Маке:

File «twitter_in_vkon.py», line 67
if timeout:
^
IndentationError: unindent does not match any outer indentation level
Вы кажется ошиблись топиком. Вам сюда habrahabr.ru/blogs/python/59236/
Спасибо, рассмешили :D
Извиняюсь, ошибся сообщением, не туда ответил )
UFO landed and left these words here
С домашней машины, которая работает 24*7 и постоянно подключена к инету будет работать? Потому что на денвере не запустилось.
Fatal error: Call to undefined function curl_init() in Z:\home\twitter\www\twitter.class.php on line 253
Или я что-то не так делаю?
У меня работает на денвере, но нужно поставить библиотеку cURL дополнительно к денверу. Я добавил ее к архиву. Для установки Вам нужно положить ее в папку Z:\usr\local\php5\ext\ и в файле Z:\usr\local\php5\php.ini заменить строчку
;extension=php_curl.dll
на
extension=php_curl.dll

Перезапускаем денвер и все работает.
Копировать в папку нужно только файл php_curl.dll
Понял, спасибо. Попробую.
Отлично. Все работает, спасибо.
Поставил, попробовал — не работает. Причина: В контакте сообщает, что я выполняю действия слишком быстро. Добавил после каждого curl_exec немного «сна» (sleep(2)) — все работает, спасибо )
У меня работало наверное потому, что инет не оч быстрый. Добавил у себя, спасибо за замечание.
вконтакте запрещает действие, если прошая активность была менее 1 секунды назад.
До сих пор не удалось скачать =( Поэтому спросшу тут — как автор обошел проблемы с тем, что после ввода логин/пароль сайт иногда авторизирует, а иногда кидает на страницу авторизации, но уже с картинкой (каптчей)?
Странно, но мне удается скачать и сейчас. Если есть желание, могу выслать вам на почту. По поводу как обходил, затрудняюсь ответить. Вроде бы ничего особого и не делал там. Все разы что я запускал у себя, всегда входило без проблем.
вышлите пожалуйста sovgvd (цобак) gmail.com =)
я просто писал проектик связанный с вконтактом, периодически при авторизации сайт перекидывал на страницу авторизации с картинкой, приходилось сохранять куки и держать их в базе, надеясь что по ним всё еще получится лазить =)
Спасибо. Когда писал не знал о нем. В гугле сразу не нашел его...)
через UserAPI даже нет смысла пытаться такое сделать… щас попробовал хотя бы что нибудь — авторизация клиента, любые запросы и прочее только через JS, ответ в виде JSON… т.е. через php обращения не получиться.
получится.
По крайней мере я это делал с помощью Ruby без проблем. Думаю с PHP аналогично.
UserAPI довольно неплохо документировано. Надо только авторизироваться и получить cookie. Затем посылать запросы к серверу и получать ответ в JSON.
я пытался авторизироваться посылая GET запрос (через cURL):
$url="http://login.userapi.com/auth?​login=force&site=".$site_id."​&email=".$login."&pass=".$pass;

ответ такой (никакого намека на sid):
HTTP/1.1 200 OK
Server: nginx/0.6.31
Date: Sun, 10 May 2009 20:27:11 GMT
Content-Type: text/html; charset=windows-1251
Connection: keep-alive
X-Powered-By: PHP/5.2.0-8+etch13
Set-Cookie: remixlang=0; expires=Mon, 10-May-2010 20:27:11 GMT; path=/; domain=.vkontakte.ru
Pragma: no-cache
Cache-control: private, must-revalidate
Set-Cookie: remixchk=5; expires=Sat, 08-May-2010 01:48:56 GMT; path=/; domain=.vkontakte.ru
Content-Length: 0

утречком проснусь — еще подумаю

и еще, скрипт обязан находиться на домене к которму привязан site_id или можно авторизироваться и на durov.ru используя site_id=2?
cURL не пользуюсь
На Ruby + Mechanize виглядит так:

agent = WWW::Mechanize.new
url = «login.userapi.com/auth?login=force&site=2&email=#{email}&pass=#{pass}»
login_page = agent.get(url)
if !agent.cookies.nil?
login = true
id = /remixmid=(\d+)/.match(agent.cookies[0].to_s)[1]
sid = /.*;sid=(\w*)/.match(login_page.uri.to_s)[1]
return true
else
return false
end

sid потом используется при запросе данных.
Если кому интересно некоторые наброски здесь: github.com/mamantoha/vkontakte-api/tree/master
однако странно что со строкой:
login.userapi.com/auth?site=2&id=0&fccode=0&fcsid=0&login=force&email=ЛОГИН&pass=ПАРОЛЬ
авторизируется на ура, а со строкой:
login.userapi.com/auth?​login=force&site=2&email=ЛОГИН&pass=ПАРОЛЬ
никак
почитад документацию и не совсем понял — нужно ли регистрировать некий сайт или авторизироваться и смотреть контакты, сообщения и прочее можно без каких либо проблем?
А зачем транслировать твитты во вконтактик? Или я чего-то не понял?

публикуются, но это легко исправить.
Можно например так:

if(!substr($statusTwitter,0,1) == "@") {

//

}
Не могу понять зачем в карму минусовать… (
Народ я что то не понял — почему нельзя скажем зарегить приложение vkontakte и получать статусы через родное API?
залил на мастерхост, не работает, скрипт грузится и ничего не происходит…
Уверены что правильно прописали свои настройки?
а уверены что IP вашего провадера не забанены для vkontakte.ru? (через toonel.net и прочие можно не пытаться — ситуация аналогина)
Нет, в этом конечно не уверен, но вряд ли вконтакте забанил бы айпишники мастерхоста?
ну ипы инфобокса например забанены… причем все, включая выделенные сервера
просто так, чтобы не лазили и не плодили ботов… пинговаться — пингуется, но тупо 'wget vkontakte.ru/' не работает… некоторое время работало через toonel.net но потом и через него перестало работать… жалко
Warning: curl_setopt() [function.curl-setopt]: CURLOPT_FOLLOWLOCATION cannot be activated when in safe_mode or an open_basedir is set in /home/public_html/twitter2vkontakte/twitter.class.php
Наверное, отключением безопасного режима PHP и грамотной настройкой open_basedir?
Я думаю что можете просто закомментировать (поставить // в начале) 267 строку в файле
curl_setopt($ch, CURLOPT_FOLLOWLOCATION,1);
закомментировал, но не работает
скрипт не выполняется (зависает)
Тогда скорее всего придется выключать safe mod.
мой провайдер этого не позволит
узнал у хостера, все таки safe mode выключен
Чуть чуть офтоп, но может кто знает софтину под мак или win которая мониторит весь http (можно не только http=) трафик с компа? Просто httpfox и Tamper Data не всегда справляется (особенно при передачи бинарных файлов)
А он бинарные данные хорошо обрабатывает? И следит за трафиком идущим только из ie или от любого приложения? И он вроде shareware, не подскажите там триал версия или ограниченная по функциональности бесплатно дается?
Не понимаю, что значит «хорошо обрабатывает» — попробуйте поставить. Следить за трафиком от любого приложения. Триал версия — 15 дней.
Спасибо за помощь) Хорошо обрабатывает — для меня это значит, что можно простым нажатием мыши выцепить передаваемый бинарный файл.
Поставил, но stand alone версия что-то вылетает через секунд 20-30 после запуска.
+ еще такой момент: кодировка В контакте windows-1251, Твиттера — UTF-8. В таком виде строки при сравнении не будут равными и обновление статуса будет происходить постоянно, что будет раздражать ваших друзей.
+ еще момент: если статус в Твиттере заканчивается на точку ".", то В контакте он будет без точки, всегда (он ее обрезает, чтобы самостоятельно ее поставить). Отсюда, опять-таки, та же проблема — не соответствие строк.

Выложить свой index.php здесь почему то не получается :(
Народ, а у кого-нибудь получается с серверов хостинга рбк достучаться до 80 порта вконтакта?
Похоже у меня до соединения на вконтакте даже не доходит :(

* About to connect() to twitter.com port 80 (#0)
* Trying 128.121.146.100… * connected
* Connected to twitter.com (128.121.146.100) port 80 (#0)
* Server auth using Basic with user 'neptunix'
> GET /statuses/user_timeline.xml?count=20 HTTP/1.1
>…

< HTTP/1.1 200 OK
< Date: Thu, 21 May 2009 09:31:15 GMT
< Server: hi
<…
* Closing connection #0
подскажите, как проверить соединяется ли скрипт с вконтактиком?

Точнее как я понял он соединяется, вконтактовский статус получает, но вот новый не устанавливает. В чем беда может быть?
разобрался, оказалось папке нужно было выставить права на запись
Вот такое у меня, скорее всего — после обновления API во вконтакте:

PHP Notice: Undefined offset: 0 in /home/dsxack/www/vkontakte.class.php on line 40
Twitter закрыл старое API, теперь только OAuth
Only those users with full accounts are able to leave comments. Log in, please.