Pull to refresh

Comments 31

Спасибо, три дня бьюсь с авторизацией, пойду попробую по вашему методу.
PS: Очень странно что нет refresh_token, что делать когда access_token сдохнет, таким же образом запрашивать второй раз?
Да, запрашивать второй раз. Тоже был удивлён отсутствием refresh_token.
Как долго пришлось ждать разрешения после sign up'а в Skype Bot Developer Preview?
Разрешения на что? На публикацию бота разрешение пока так и не получил.
У меня после клика на https://developer.microsoft.com/en-us/skype/bots появляется регистрационная форма, после ее заполнения обещают прислать дальнейшие инструкции на email. Жду ответа со вчерашнего вечера :)
Этот процесс у меня занял довольно много времени. Может, неделю. Но в моем случае, наверное, Skype API ещё не было открыто для всех разработчиков, потому пришлось ждать сначала открытия, а потом уже согласования.
curl -X POST -H "Cache-Control: no-cache" -H "Content-Type: application/x-www-form-urlencoded"
Curl же по умолчанию шлёт POST-запросы в application/x-www-form-urlencoded.
А не запаблишеный бот сейчас может писать/читать в групповых чатах?
Я тестировать это не стал в итоге, так что не знаю. Но судя по документации — может. Попробуйте и поделитесь с нами информацией ;).
Я через бот платформу интегрировался, своего бота к себе не могу добавить на андроиде (его просто нет в контактах, чужие появляются), для мак клиента боты еще не доступны. Так что пока не ясно когда я туда доберусь :)
Может, но это функционал доступный как limited preview for developer accounts only, а при его использовании бота вы не опубликуете, меня вот интересует как там со звонками 1:1, функционал тоже доступен как limited preview for developer accounts only, но с какой стороны подойти пока не знаю.
Может, но его надо в чат добавить. И похоже что контакты, которые не добавили себе лично в контакты бота, его сообщений не видят.
Ох, я как-то около года назад, писал бота для скайпа, for fun.
Расковырял всё что смог в web версии скайпа. С авторизацией только по логину и паролю разобрался.
Принцип работы бота — выполнять команды. Не помню что я уже там реализовал, но точно помню, ping работал :)
Работал так:
me: /ping
bot: pong

И, кажется, ещё умел работать с задачами в jira.
Могу выложить исходники когда дома буду, если кому-нибудь интересно :)
Бот «расширяемый» :)

Там, кстати, нюанс один был при работе с чатами. Оказывается в скайпе можно создать чат с флагом p2p и его нельзя будет увидеть в веб версии. Не знаю можно ли сейчас так делать.
вот
https://bitbucket.org/zbitname/skypebot
UFO just landed and posted this here
Вообще, очень не плохо было бы, если бы MS опубликовали документацию по Skype Web API. Многие разработчики сказали бы спасибо :)
Создание бота для телеграмма и проверка с помощью пинг-понга заняло минут 20-30.
А тут ждать только одобрения несколько дней, жесть…
Судя по всему, ботов типа флибусты и рутрекера в Skype не будет…
Господи, Skype по-моему все нормальные люди используют лишь чтобы разово созвониться голосом. Во все остальное время пользование им вызывает отврещение, а вы тут про каких-то еще ботов. Тут даже контакты хрен поймешь как ищутся\удаляются.
Наверное, даже для того, чтобы созвониться не просто голосом, а еще и с видео. Согласен, мне тоже кажется, что скайп умирает. Хотя, возможно, в корпоративном сегменте он распространен (Lync/Skype for Business?).
Skype будет умирать еще долго. Я — как типичный представитель малого бизнеса — бы с удовольствием заимел у себя на сайте Skype-бота вместо или в дополнение к jivosite. Чтобы избавиться от рутинных объяснений «не продаем физ. лицам», «цена сегодня такая-то». Именно Skype-bot, т. к. Skype — привычен и удобен большинству моих клиентов.
Приглашаю к сотрудничеству.
А почему именно Skype? Ведь с Telegram можно то же самое организовать. На хабре где-то была статья.
Часть по «именно skype-bot» непонятна. Ведь на сайте пользователь не интерфейс скайпа видит.
В любом случае для общения с ботом нужен клиент (и аккаунт) со стороны пользователя. Число пользователей Скайпа в разы больше, чем Telegram. По крайней мере, среди моих клиентов.
Начинать в любом случае буду со Скайпа.
Жаль что бот не умеет читать все сообщения в группе. С такой функцией легко настроить транспорт в другие системы, например Telegram.
А нельзя ли делать бота по poll-модели? Как-то не очень хочется делать callback url, который должен быть виден всем в интернете. В телеграме в этом смысле хорошо — можно веб хуком делать, а можно и просто делать запросы по таймеру на наличие новых сообщений.
Почему callback url виден всем в интернете?
Спасибо за статью! Внесу свои 5 копеек по API v3, не причесанный код, только что заработал, оставляю для истории, чтобы последователям не сидеть 2 дня над этой задачей. Естественно, и первый запрос можно cUrl'ом отправлять, код экспперементальный, не пинайте сильно.

<?php

// Получаем токен, он живет 3600 сек, можно кешировать
/*
  "token_type": "Bearer",
  "expires_in": 3599,
  "ext_expires_in": 0,
  "access_token": "eyJ0eXAiOi..."
*/
$url='https://login.microsoftonline.com/botframework.com/oauth2/v2.0/token';
$params=array
    (
    'client_id' => 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx', //your-app-id
    'client_secret' => 'xxxxxxxxxxxxxxxxx',          // your-app-secret
    'grant_type'=>'client_credentials',                     //client_credentials&
    'scope'=>'https://api.botframework.com/.default'
    );
$result=file_get_contents($url, false, stream_context_create(array('http' => array
    (
    'method' => 'POST',
    'header' => 'Content-type: application/x-www-form-urlencoded',
    'content' => http_build_query($params)
    ))));

$token = json_decode($result, TRUE);

// Соответствия входящему массиву из вызова
// $IN['CHANNEL_NAME']
// $IN['CHANNEL']  = ['conversation']['id']
// $IN['URL'] = ['serviceUrl']
// $IN['TO'] = ['recipient']['id']
// $IN['FROM_ID'] = ['from']['id']

$url =$IN['URL'].'/v3/conversations/'.$IN['CHANNEL'].'/activities/';
$data_string = '
{
  "type": "message",
  "from": {
    "id": "'.$IN['TO'].'",
    "name": "Echo Bot"
  },
  "conversation": {
    "id": "'.$IN['CHANNEL'].'"
  },
  "recipient": {
    "id": "'.$IN['CHANNEL'].'",
    "name": "User Name"
  },
  "text": "'.$OUT['MSG'].'",
  "replyToId": "'.$IN['FROM_ID'].'"
}
';

$ch = curl_init($url);                                                                      
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");                                                                     
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);                                                                  
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);                                                                      
curl_setopt($ch, CURLOPT_HTTPHEADER, array(                                                                          
    'Content-Type: application/json',
	'Authorization: Bearer '.$token['access_token'].'',
    'Content-Length: ' . strlen($data_string))                                                                       
);        

$result = curl_exec($ch); // должен вернуть {"id":"0:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"}
Sign up to leave a comment.

Articles