victornine / fbridge Goto Github PK
View Code? Open in Web Editor NEWBridge facebook messenger with any service supported by matterbridge
License: BSD 3-Clause "New" or "Revised" License
Bridge facebook messenger with any service supported by matterbridge
License: BSD 3-Clause "New" or "Revised" License
I feel like I'm so close, but maybe missing some detail somewhere. I'd be grateful if anybody could shed some light on what I'm doing wrong here!
when I run python3 fbridge.py
, here's what I get:
Logging in [email protected]...
Attempt #1 failed, retrying
Traceback (most recent call last):
File "/home/chris/.local/lib/python3.5/site-packages/fbchat/_client.py", line 209, in login
user_agent=user_agent,
File "/home/chris/.local/lib/python3.5/site-packages/fbchat/_state.py", line 151, in login
return cls.from_session(session=session)
File "/home/chris/.local/lib/python3.5/site-packages/fbchat/_state.py", line 190, in from_session
revision = int(r.text.split('"client_revision":', 1)[1].split(",", 1)[0])
IndexError: list index out of range
Attempt #2 failed, retrying
Traceback (most recent call last):
File "/home/chris/.local/lib/python3.5/site-packages/fbchat/_client.py", line 209, in login
user_agent=user_agent,
File "/home/chris/.local/lib/python3.5/site-packages/fbchat/_state.py", line 151, in login
return cls.from_session(session=session)
File "/home/chris/.local/lib/python3.5/site-packages/fbchat/_state.py", line 190, in from_session
revision = int(r.text.split('"client_revision":', 1)[1].split(",", 1)[0])
IndexError: list index out of range
Attempt #3 failed, retrying
Traceback (most recent call last):
File "/home/chris/.local/lib/python3.5/site-packages/fbchat/_client.py", line 209, in login
user_agent=user_agent,
File "/home/chris/.local/lib/python3.5/site-packages/fbchat/_state.py", line 151, in login
return cls.from_session(session=session)
File "/home/chris/.local/lib/python3.5/site-packages/fbchat/_state.py", line 190, in from_session
revision = int(r.text.split('"client_revision":', 1)[1].split(",", 1)[0])
IndexError: list index out of range
Attempt #4 failed, retrying
Traceback (most recent call last):
File "/home/chris/.local/lib/python3.5/site-packages/fbchat/_client.py", line 209, in login
user_agent=user_agent,
File "/home/chris/.local/lib/python3.5/site-packages/fbchat/_state.py", line 151, in login
return cls.from_session(session=session)
File "/home/chris/.local/lib/python3.5/site-packages/fbchat/_state.py", line 190, in from_session
revision = int(r.text.split('"client_revision":', 1)[1].split(",", 1)[0])
IndexError: list index out of range
Traceback (most recent call last):
File "fbridge.py", line 100, in <module>
client = FBListener(username, password)
File "/home/chris/.local/lib/python3.5/site-packages/fbchat/_client.py", line 103, in __init__
self.login(email, password, max_tries, user_agent=user_agent)
File "/home/chris/.local/lib/python3.5/site-packages/fbchat/_client.py", line 209, in login
user_agent=user_agent,
File "/home/chris/.local/lib/python3.5/site-packages/fbchat/_state.py", line 151, in login
return cls.from_session(session=session)
File "/home/chris/.local/lib/python3.5/site-packages/fbchat/_state.py", line 190, in from_session
revision = int(r.text.split('"client_revision":', 1)[1].split(",", 1)[0])
IndexError: list index out of range
my matterbridge.toml
:
[mattermost]
[mattermost.work]
UseTLS=true
NoTLS=false
Server="https://secret"
Team="helloworld"
Login="secretusername"
Password="p355w0rd"
PrefixMessagesWithNick=true
RemoteNickFormat="[{PROTOCOL}] <{NICK}> "
[api.myapi]
BindAddress="127.0.0.1:4242"
Buffer=1000
RemoteNickFormat="{NICK}"
## This is the default FB gateway. All facebook measseages will be sendt here
[[gateway]]
name="FBgateway"
enable=true
[[gateway.inout]]
account="mattermost.work"
channel="hello"
[[gateway.inout]]
account="api.myapi"
channel="api"
I don't exactly know how does it all work, but I still tried to configure it.
After running python3 fbridge.py
it gives me a number of errors.
Login of mymail@mymail successful.
Exception in thread Thread-1:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/urllib3/connection.py", line 159, in _new_conn
(self._dns_host, self.port), self.timeout, **extra_kw)
File "/usr/lib/python3/dist-packages/urllib3/util/connection.py", line 80, in create_connection
raise err
File "/usr/lib/python3/dist-packages/urllib3/util/connection.py", line 70, in create_connection
sock.connect(sa)
ConnectionRefusedError: [Errno 111] Connection refused
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 600, in urlopen
chunked=chunked)
File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 354, in _make_request
conn.request(method, url, **httplib_request_kw)
File "/usr/lib/python3.7/http/client.py", line 1244, in request
self._send_request(method, url, body, headers, encode_chunked)
File "/usr/lib/python3.7/http/client.py", line 1290, in _send_request
self.endheaders(body, encode_chunked=encode_chunked)
File "/usr/lib/python3.7/http/client.py", line 1239, in endheaders
self._send_output(message_body, encode_chunked=encode_chunked)
File "/usr/lib/python3.7/http/client.py", line 1026, in _send_output
self.send(msg)
File "/usr/lib/python3.7/http/client.py", line 966, in send
self.connect()
File "/usr/lib/python3/dist-packages/urllib3/connection.py", line 181, in connect
conn = self._new_conn()
File "/usr/lib/python3/dist-packages/urllib3/connection.py", line 168, in _new_conn
self, "Failed to establish a new connection: %s" % e)
urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0xb5ad87f0>: Failed to establish a new connection: [Errno 111] Connection refused
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/requests/adapters.py", line 449, in send
timeout=timeout
File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 638, in urlopen
_stacktrace=sys.exc_info()[2])
File "/usr/lib/python3/dist-packages/urllib3/util/retry.py", line 398, in increment
raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='localhost', port=4242): Max retries exceeded with url: /api/messages (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0xb5ad87f0>: Failed to establish a new connection: [Errno 111] Connection refused'))
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib/python3.7/threading.py", line 917, in _bootstrap_inner
self.run()
File "/usr/lib/python3.7/threading.py", line 865, in run
self._target(*self._args, **self._kwargs)
File "fbridge.py", line 50, in listen
r = requests.get('http://localhost:4242/api/messages')
File "/usr/lib/python3/dist-packages/requests/api.py", line 75, in get
return request('get', url, params=params, **kwargs)
File "/usr/lib/python3/dist-packages/requests/api.py", line 60, in request
return session.request(method=method, url=url, **kwargs)
File "/usr/lib/python3/dist-packages/requests/sessions.py", line 533, in request
resp = self.send(prep, **send_kwargs)
File "/usr/lib/python3/dist-packages/requests/sessions.py", line 646, in send
r = adapter.send(request, **kwargs)
File "/usr/lib/python3/dist-packages/requests/adapters.py", line 516, in send
raise ConnectionError(e, request=request)
requests.exceptions.ConnectionError: HTTPConnectionPool(host='localhost', port=4242): Max retries exceeded with url: /api/messages (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0xb5ad87f0>: Failed to establish a new connection: [Errno 111] Connection refused'))
Listening...
Additionally when someone types something I get information for it in the terminal.
Also output of matterbridge
[0000] INFO main: [setupLogger:matterbridge.go:97] Enabling debug logging.
[0000] INFO main: [main:matterbridge.go:46] Running version 1.17.5 8eb5e3cb
[0000] INFO router: [Start:gateway/router.go:66] Parsing gateway fbbridge //maybe there's the issue?
[0000] INFO router: [Start:gateway/router.go:75] Starting bridge: telegram.mytelegram
[0000] INFO telegram: [Connect:bridge/telegram/telegram.go:32] Connecting
[0000] INFO telegram: [Connect:bridge/telegram/telegram.go:45] Connection succeeded
[0000] INFO telegram: [joinChannels:bridge/bridge.go:77] telegram.mytelegram: joining 866432893 (ID: 866432893telegram.mytelegram)
[0000] INFO main: [main:matterbridge.go:61] Gateway(s) started succesfully. Now relaying messages
my matterbridge.toml
[telegram.mytelegram]
#See https://core.telegram.org/bots#6-botfather
#and https://www.linkedin.com/pulse/telegram-bots-beginners-marco-frau
Token="this seems to be correct"
RemoteNickFormat="<{NICK}>"
[[gateway]]
name="fbbridge"
enable=true
[[gateway.inout]]
account="telegram.mytelegram"
channel="this seems to be correct"
Also I don't know if I should make an issue on matterbridge repo
First of all thank you for this project,
Have you try to integrate your project in the docker image of matterbridge ?
If yes, do you any example of configuration ?
you can see my error :
Paullux@dvkbuntu:~/fbridge$ python3 fbridge.py
Logging in paulwoisard...
Please enter your 2FA code --> 677061
Submitting 2FA code.
Attempt #1 failed, retrying
Traceback (most recent call last):
File "/home/Paullux/.local/lib/python3.8/site-packages/fbchat/_client.py", line 205, in login
self._state = State.login(
File "/home/Paullux/.local/lib/python3.8/site-packages/fbchat/_state.py", line 151, in login
return cls.from_session(session=session)
File "/home/Paullux/.local/lib/python3.8/site-packages/fbchat/_state.py", line 190, in from_session
revision = int(r.text.split('"client_revision":', 1)[1].split(",", 1)[0])
IndexError: list index out of range
Please enter your 2FA code --> 677061
Submitting 2FA code.
Saving browser.
Starting Facebook checkup flow.
Verifying login attempt.
Saving device again.
Attempt #2 failed, retrying
Traceback (most recent call last):
File "/home/Paullux/.local/lib/python3.8/site-packages/fbchat/_client.py", line 205, in login
self._state = State.login(
File "/home/Paullux/.local/lib/python3.8/site-packages/fbchat/_state.py", line 153, in login
raise _exception.FBchatUserError(
fbchat._exception.FBchatUserError: Login failed. Check email/password. (Failed on url: https://m.facebook.com/login/checkpoint/)
Please enter your 2FA code --> 016232
Submitting 2FA code.
Saving browser.
Starting Facebook checkup flow.
Verifying login attempt.
Saving device again.
Attempt #3 failed, retrying
Traceback (most recent call last):
File "/home/Paullux/.local/lib/python3.8/site-packages/fbchat/_client.py", line 205, in login
self._state = State.login(
File "/home/Paullux/.local/lib/python3.8/site-packages/fbchat/_state.py", line 153, in login
raise _exception.FBchatUserError(
fbchat._exception.FBchatUserError: Login failed. Check email/password. (Failed on url: https://m.facebook.com/login/checkpoint/)
Please enter your 2FA code --> 678383
Submitting 2FA code.
Attempt #4 failed, retrying
Traceback (most recent call last):
File "/home/Paullux/.local/lib/python3.8/site-packages/fbchat/_client.py", line 205, in login
self._state = State.login(
File "/home/Paullux/.local/lib/python3.8/site-packages/fbchat/_state.py", line 151, in login
return cls.from_session(session=session)
File "/home/Paullux/.local/lib/python3.8/site-packages/fbchat/_state.py", line 190, in from_session
revision = int(r.text.split('"client_revision":', 1)[1].split(",", 1)[0])
IndexError: list index out of range
Please enter your 2FA code --> 678383
Submitting 2FA code.
Saving browser.
Starting Facebook checkup flow.
Verifying login attempt.
Saving device again.
Traceback (most recent call last):
File "fbridge.py", line 100, in <module>
client = FBListener(username, password)
File "/home/Paullux/.local/lib/python3.8/site-packages/fbchat/_client.py", line 103, in __init__
self.login(email, password, max_tries, user_agent=user_agent)
File "/home/Paullux/.local/lib/python3.8/site-packages/fbchat/_client.py", line 205, in login
self._state = State.login(
File "/home/Paullux/.local/lib/python3.8/site-packages/fbchat/_state.py", line 153, in login
raise _exception.FBchatUserError(
fbchat._exception.FBchatUserError: Login failed. Check email/password. (Failed on url: https://m.facebook.com/login/checkpoint/)
I use matterbridge and fbridge bridge facebook and slack,
but in facebook, the messages forwarded from slack are not start with
[slack @username]
or my RemoteNickFormat
config.
I can send a pull request later.
Hi! Thanks for this great tool, I got it working fairly easily. I will create a docker container for this when I have the time to make setting up easier.
I have one problem however: RemoteNickFormat is ignored, meaning messages sent to Facebook will just contain the message, no info on who wrote the message. Here are the relevant parts of my matterbridge.toml:
[api.myapi]
BindAddress="127.0.0.1:4242"
Buffer=1000
RemoteNickFormat="[{PROTOCOL}] <{NICK}> "
## This is the default FB gateway. All facebook measseages will be sent here
[[gateway]]
name="FBgateway"
enable=true
RemoteNickFormat="[{PROTOCOL}] <{NICK}> "
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.