Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.81/47: Рейтинг темы: голосов - 47, средняя оценка - 4.81
Прогер
632 / 263 / 15
Регистрация: 17.11.2010
Сообщений: 1,371
Записей в блоге: 2
1

Как создать skype bot messanger?

02.02.2011, 14:10. Показов 8836. Ответов 23
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Привет ребята... Я хочу создат скаип бот... Оно далжно отправит 3 сообшении по вибронному скаип неим... А ето скаип неим должно вибиратса в лист боксе.... ест идеий... спасибо заранее...
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.02.2011, 14:10
Ответы с готовыми решениями:

Telegram bot | Как создать inline кнопки?
При создании бота столкнулся с одной, не очень приятной, проблемой. Связанна она с созданием inline...

Как создать реферальную систему в telegram bot?
Как создать реферальную систему в телеграмм? Ссылку я создал, но мне нужно подсчитать сколько...

Как запустить Instant Messanger
Доброго всем времени суток . Как запустить службу Instant messanger на сервере. делаю пинг на порт...

Создать всплывающее уведомление как в Skype
Всем доброго времени суток, у меня такой вопрос. Как сделать всплывающее уведомление в правом...

23
1665 / 1134 / 80
Регистрация: 21.08.2008
Сообщений: 4,734
Записей в блоге: 1
02.02.2011, 14:36 2
протокол скайпа вообще то закрытый... за хаки могут и подвесить за одно место

Добавлено через 1 минуту
под линуксом сторонние клиенты общаются со скайпом через D-Bus, возможно, что под виндой что то типа COM взаимодействия есть
1
61 / 60 / 9
Регистрация: 13.01.2009
Сообщений: 322
03.02.2011, 06:32 3
Цитата Сообщение от Vlad_IT Посмотреть сообщение
Я не думаю что здесь разрешается такие вопросы. Вообще то спамерство скоро официально войдет в статью РФ. Так что не стоит
Вообще бот программы это не обязательно спамерство, для хорошего программиста(системного администратора) бот, это друг , товарищ, и помошник.
а по теме, возможно есть у скайпа свой API, но как то не встречал описаний. Вот погуглил))
0
LK
Заблокирован
03.02.2011, 07:10 4
Лучший ответ Сообщение было отмечено как решение

Решение

Использование Skype API в С++

Не так давно понадобилась написать приложение которое бы автоматически отправляло сообщение по Skype определенному пользователю, который есть в списке контактов. Задача была не много сложнее, но дело не в этом. Решил написать маленькую статейку по использованию Skype API.
Всем известно, что у Skype есть свое API, причем для разных языков. Я хотел начать описания с Skype4COM для С++.
Скачать Skype4COM можно с официального сайта.
https://developer.skype.com/Download

В архиве находятся три файлика:
* Skype4COM.chm
* Skype4COM.dll
* Skype4COM.msm
Нам нужен собственно Skype4COM.dll.

Hello world для Skype

За первый пример я решил взять пример с сайта скайпа, который выводит версию текущего скайп клиента.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#import "Skype4COM.dll" 
 
int _tmain(int argc, _TCHAR* argv[]) { 
  // Инициализмруем COM соединение 
  CoInitialize(NULL); 
 
  // Создаем Skype объект 
  SKYPE4COMLib::ISkypePtr pSkype(__uuidof(SKYPE4COMLib::Skype)); 
 
  // Соединяемся с Skype API 
  pSkype->Attach(6,VARIANT_TRUE); 
 
  // Получаем версию клиента и выводим ее 
  _bstr_t bstrSkypeVersion = pSkype->GetVersion(); 
  printf("Skype client version %s\n", (char*)bstrSkypeVersion); 
  
  //Печатаем версию COM "обертки" 
  _bstr_t bstrWrapperVersion = pSkype->GetApiWrapperVersion(); 
  printf("COM wrapper version %s\n", (char*)bstrWrapperVersion); 
  
  // Удаляем соединения со скайп 
  pSkype = NULL; 
  CoUninitialize(); 
 
  return 0; 
}
В целом все просто и понятно. Правда есть один момен не много не приятный, как всегда связанный с безопасностью, что на строке:
C++
1
pSkype->Attach(6, VARIANT_TRUE);
скайп запросить разрешение на использования ресурсов скайпа нашим приложением. Со стороны безопасности оно то правильно, но есть мелкий вариант обхода, но о нем не в формате текущего поста ))))

Отправить сообщение пользователю из списка контактов

Продолжаем набор банальных примеров, теперь собственно разберемся с отправкой сообщения:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#import "Skype4COM.dll" 
using namespace SKYPE4COMLib; 
 
int _tmain(int argc, _TCHAR* argv[]) { 
  CoInitialize(NULL); 
  ISkypePtr pSkype(__uuidof(Skype)); 
  pSkype->Attach(6,VARIANT_TRUE); 
 
  IChatMessage *message; 
  message = pSkype->SendMessage(_bstr_t(L"user_name"), _bstr_t(L"Привет")); 
  printf("%s sent message", (char *)message->FromHandle); 
 
  pSkype = NULL; 
  CoUninitialize(); 
  return 0; 
} 
 
Для того, что бы набрать пользователя, нужно вызвать метод PlaceCall:
 
ICallPtr pCall = pSkype->PlaceCall(_bstr_t(L"user_name"), L"", L"", L"");
Получить список контактов
C++
1
2
3
4
5
6
IUserCollectionPtr contactList = pSkype->GetFriends();
    for(int i = 1; i <= contactList->GetCount(); i++) {
      _bstr_t bstrHandle = contactList->GetItem(i)->GetHandle();
      _bstr_t bstrFullname = contactList->GetItem(i)->GetFullName();
      printf("Friend login %s and name %s \n", (char*)bstrHandle, (char*)bstrFullname);
    }
Исходники

Если тема интересна могу написать более интересные примеры использования Skype4COM…
Источник: Использование Skype API в С++
4
201 / 172 / 52
Регистрация: 01.06.2010
Сообщений: 371
03.02.2011, 22:49 5
кто-то может скинуть робочий пример?
0
LK
Заблокирован
03.02.2011, 22:55 6
Пример чего ?
0
201 / 172 / 52
Регистрация: 01.06.2010
Сообщений: 371
04.02.2011, 00:23 7
отправки сообщений
0
LK
Заблокирован
04.02.2011, 01:02 8
Вы бы для начала сами попробовали, а вдруг получится ?
1
201 / 172 / 52
Регистрация: 01.06.2010
Сообщений: 371
04.02.2011, 02:08 9
пробывал и не получается, выбивает кучу ошыбок
0
LK
Заблокирован
04.02.2011, 02:09 10
покажите, как делали, и текст ошибок.
0
201 / 172 / 52
Регистрация: 01.06.2010
Сообщений: 371
04.02.2011, 02:22 11
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
#import "Skype4COM.dll"
using namespace SKYPE4COMLib;
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::FormCreate(TObject *Sender)
{
 
int _tmain(int argc, _TCHAR* argv[]) {
  // Инициализмруем COM соединение
  CoInitialize(NULL);
 
  // Создаем Skype объект
  SKYPE4COMLib::ISkypePtr pSkype(__uuidof(SKYPE4COMLib::Skype));
 
  // Соединяемся с Skype API
  pSkype->Attach(6,VARIANT_TRUE);
 
  // Получаем версию клиента и выводим ее
  _bstr_t bstrSkypeVersion = pSkype->GetVersion();
  printf("Skype client version %s\n", (char*)bstrSkypeVersion);
 
  //Печатаем версию COM "обертки"
  _bstr_t bstrWrapperVersion = pSkype->GetApiWrapperVersion();
  printf("COM wrapper version %s\n", (char*)bstrWrapperVersion);
 
  // Удаляем соединения со скайп
  pSkype = NULL;
  CoUninitialize();
 
  return 0;
}
}
//---------------------------------------------------------------------------
[C++ Error] Unit1.cpp(23): E2141 Declaration syntax error
[C++ Error] Unit1.cpp(47): E2139 Declaration missing ;
[C++ Error] Unit1.cpp(47): E2190 Unexpected }
0
LK
Заблокирован
04.02.2011, 13:08 12
Скорее всего, как-нибудь так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
TForm1 *Form1;
 
// здесь вы объявляете функцию tmain()
int _tmain(int argc, _TCHAR* argv[]) {
// Инициализмруем COM соединение
  CoInitialize(NULL);
// Создаем Skype объект
  SKYPE4COMLib::ISkypePtr pSkype(__uuidof(SKYPE4COMLib::Skype));
// Соединяемся с Skype API
  pSkype->Attach(6,VARIANT_TRUE);
// Получаем версию клиента и выводим ее
  _bstr_t bstrSkypeVersion = pSkype->GetVersion();
  printf("Skype client version %s\n", (char*)bstrSkypeVersion);
//Печатаем версию COM "обертки"
  _bstr_t bstrWrapperVersion = pSkype->GetApiWrapperVersion();
  printf("COM wrapper version %s\n", (char*)bstrWrapperVersion);
// Удаляем соединения со скайп
  pSkype = NULL;
  CoUninitialize();
  return 0;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  AnsiString str = "Версия Скайпа "+_tmain();
//  или просто
//  AnsiString str = _tmain();
  ShowMessage(str);
}
Точнее проверить не могу, у меня нет ДЛЛ"ок.
------------------------------------

Добавлено через 7 часов 31 минуту
name?, написал бы, что получилось ?

Добавлено через 4 минуты
Examples (к сожалению, Delphi)
1
Прогер
632 / 263 / 15
Регистрация: 17.11.2010
Сообщений: 1,371
Записей в блоге: 2
04.02.2011, 13:13  [ТС] 13
LK,
Я не могу скачиват нужний фаил... Можеш линк загрузни вилажить?
0
LK
Заблокирован
04.02.2011, 13:14 14
Загрузки чего ?
0
201 / 172 / 52
Регистрация: 01.06.2010
Сообщений: 371
04.02.2011, 17:48 15
выбило опять кучу ошыбок

[C++ Error] Unit1.cpp(25): E2108 Improper use of typedef 'ISkypePtr'
[C++ Error] Unit1.cpp(25): E2379 Statement missing ;
[C++ Error] Unit1.cpp(27): E2451 Undefined symbol 'pSkype'
[C++ Error] Unit1.cpp(42): E2120 Cannot call 'main' from within the program
[C++ Error] Unit1.cpp(42): E2193 Too few parameters in call to 'main(int,char * *)'
0
68 / 68 / 11
Регистрация: 28.12.2012
Сообщений: 471
05.09.2013, 22:06 16
Кто может подсказать как слать смс именно на мобильный номер. Но номера skype шлет отлично

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#import "Skype4COM.dll" 
using namespace SKYPE4COMLib; 
 
int main() { 
  CoInitialize(NULL); 
  ISkypePtr pSkype(__uuidof(Skype)); 
  pSkype->Attach(6,VARIANT_TRUE); 
 
  IChatMessage *message; 
  message = pSkype->SendMessage(_bstr_t(L"+xxxxxxxxxxx"), _bstr_t(L"Hello")); 
  printf("%s sent message", (char *)message->FromHandle); 
 
  pSkype = NULL; 
  CoUninitialize(); 
  return 0; 
}
А так программа вылетает. Заранее спасибо
0
Эксперт С++
8482 / 6149 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
06.09.2013, 00:59 17
Цитата Сообщение от oxotnik Посмотреть сообщение
под линуксом сторонние клиенты общаются со скайпом через D-Bus, возможно, что под виндой что то типа COM взаимодействия есть
Через компоненты ActiveX

Цитата Сообщение от oxotnik Посмотреть сообщение
протокол скайпа вообще то закрытый... за хаки могут и подвесить за одно место
Оно то да, именно поэтому в самом скайпе возникает запрос на разрешение использование вашей программы, пока не разрешишь твоя прога не сможет работать со скайпом.
0
164 / 49 / 27
Регистрация: 04.06.2013
Сообщений: 636
06.09.2013, 20:54 18
выложите пожалуйста архив с dll-кой,не могу скачать с оф.сайта
1
☆ Форумчанин(FSC)☆
911 / 292 / 27
Регистрация: 28.04.2013
Сообщений: 2,466
Записей в блоге: 10
30.10.2013, 11:37 19
Цитата Сообщение от mish_k98 Посмотреть сообщение
выложите пожалуйста архив с dll-кой,не могу скачать с оф.сайта
Да, выложите!
0
68 / 68 / 11
Регистрация: 28.12.2012
Сообщений: 471
30.10.2013, 18:45 20
Цитата Сообщение от FSC Посмотреть сообщение
Да, выложите!
В декабре Skype API не будет поддерживаться... Может и начинать не стоит.
1
30.10.2013, 18:45
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.10.2013, 18:45
Помогаю со студенческими работами здесь

Wlan messanger
Посоветуйте программу которая устанавливается на Винду, типа чат без доступа к интернету между...

Messanger MVVM Light
Здравствуйте! Разбираюсь с MVVM Light. Никак не могу настроить передачу сообщений из одной...

Не удаётся найти Skype.exe при запуске Skype
При запуске Skype Винда выдаёт ошибку: &quot;Не удаётся найти C:\Program Files\Skype\Phone\Skype.exe&quot;...

Messanger для рассылки файлов по личкам на форуме
Добрый день ! Нужно собрать такого зверя : 1) Авторизируемся на сайте &lt;input type=&quot;text&quot;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru