Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create a Skype for Business connector module #676

Open
jacobtomlinson opened this issue Sep 30, 2018 · 6 comments
Open

Create a Skype for Business connector module #676

jacobtomlinson opened this issue Sep 30, 2018 · 6 comments

Comments

@jacobtomlinson
Copy link
Member

Let's add a Skype for Business connector.

Steps

Resources to get you started

Asyncio

Opsdroid uses asyncio and an event loop, so here are some things to bear in mind:

  • Functions should be coroutines which are defined with async def myfunc(): ...
  • Coroutines are called with await. For example await myfunc(). This is how asyncio allows many functions to take it in turns as they swap over when the current thread calls await.
  • Don't block the thread! If you need to make a call to a blocking function such as time.sleep() or any kind of IO request such as requests.get() then you should await an async variant. For example you can call await asyncio.sleep(10) to sleep without blocking the whole application and you can use aiohttp as an async url library.
@arpit2297
Copy link

hey! I'd like to take this up :)

@FabioRosado
Copy link
Member

Hello @arpit2297 please go ahead and work on this issue, let us know if you need any help

@jacobtomlinson
Copy link
Member Author

Hey @arpit2297 I'm guessing you've not had time to work on this. If anyone else wants to take this up then please go ahead.

@petri
Copy link
Contributor

petri commented Nov 28, 2018

I'm working on a Skype connector; got a working proof of concept done that works ok with the Skype bot emulator.

Reading the docs, it seems to me the implementation could be made work both with the consumer and business Skype network.

Per the M$ docs, at least the consumer bots need to be implemented as servers, meaning the approach used with eg. Slack connector does not work. So I've created a 'connector' implementation that fires up an extra server within the loop. So 'acceptor' or just 'server' might be a better term for this kind of connector.

@jacobtomlinson
Copy link
Member Author

@petri it sounds similar to the facebook messenger connector. It adds some methods to the existing web server in opsdroid.

While you are probably right about the terminology I don't think it would be helpful to refer to it as anything other than a connector. If it makes you feel better it is still a connector in that it is providing a way for Skype to connect with opsdroid, its just an inbound connector instead of an outbound connector.

@petri
Copy link
Contributor

petri commented Nov 29, 2018

@jacobtomlinson thanks for pointing out the facebook connector - I did not realize server functionality could be provided so conveniently in opsdroid. Very nice.

I did not mean to suggest that connector be replaced with some other term in public docs etc.; to stay consistent and clear, sticking to the skill-connector-database terminology makes sense, and in/outbound is a good way to distinguish between the two connector types.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants