fbmessenger-api alternatives and similar packages
Based on the "Web" category.
Alternatively, view fbmessenger-api alternatives based on common mentions on social networks and blogs.
-
yesod-persistent
A RESTful Haskell web framework built on WAI. -
scotty
Haskell web framework inspired by Ruby's Sinatra, using WAI and Warp (Official Repository) -
haskell-bitmex-rest
swagger-codegen contains a template-driven engine to generate documentation, API clients and server stubs in different languages by parsing your OpenAPI / Swagger definition. -
swagger-petstore
swagger-codegen contains a template-driven engine to generate documentation, API clients and server stubs in different languages by parsing your OpenAPI / Swagger definition. -
servant
Main repository for the servant libraries — DSL for describing, serving, querying, mocking, documenting web applications and more! -
neuron
Future-proof note-taking and publishing based on Zettelkasten (superseded by Emanote: https://github.com/srid/emanote) -
apecs-gloss
a fast, extensible, type driven Haskell ECS framework for games -
haskell-kubernetes
Haskell bindings to the Kubernetes API (via swagger-codegen) -
hbro
[Unmaintained] A minimal web-browser written and configured in Haskell. -
digestive-functors
A general way to consume input using applicative functors -
tagsoup
Haskell library for parsing and extracting information from (possibly malformed) HTML/XML documents -
airship
Helium + Webmachine = Airship. A toolkit for building declarative, RESTful web apps. -
backprop
Heterogeneous automatic differentiation ("backpropagation") in Haskell -
keera-hails-reactive-htmldom
Keera Hails: Haskell on Rails - Reactive Programming Framework for Interactive Haskell applications -
servant-elm
Automatically derive Elm functions to query servant webservices -
kubernetes-client-core
Haskell client for the kubernetes API. A work in progress. -
ghcjs-base
base library for GHCJS for JavaScript interaction and marshalling, used by higher level libraries like JSC -
telegram-bot-simple
Easy to use library for building Telegram bots in Haskell. -
validity-scientific
Validity and validity-based testing
InfluxDB - Power Real-Time Data Analytics at Scale
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of fbmessenger-api or a related project?
README
FBMessenger API
High-level bindings to the Messenger Platform API based on servant library. We try to maintain the overall structure compatible with telegram-api.
There was an incongruence between the spec and the actual serialization of the webhook requests that became apparent when testing an actual messenger bot. For this reason you should use only versions of the library that are >= 0.1.1
!
This library is alpha software and the API design could change to improve composability, ergonomicity and ease of use. We recommend using stack
for dealing with this library (you will need to add it to the extra-deps
in stack.yaml
).
NOTE (1.6.2016): the WelcomeMessageSendAPI recently changed. The Platform no-longer accepts any welcome message api-wise (only a custom payload is now allowed). The library will be updated to reflect this change as soon as I can (otherwise you are welcome to submit a PR). To setup/modify the Welcome Message you have to use the online interface.
Usage
Before being able to test and use the bot, you will need to verify your key.
The example app in example-app/example.hs
contains a servant server that implements the verification and a trivial echo-server.
You can run it with
VERIFY_TOKEN="your_token_goes_here" stack exec example
and pass it some data (here assuming you have httpie
installed)
http get 'localhost:3000/webhook/?hub.verify_token=your_token_goes_here&hub.challenge=test'
http post :3000/webhook < test-files/wsTextMessageRequest.json
Otherwise run stack ghci
then copy and paste the following
:m +Network.HTTP.Client
:m +Network.HTTP.Client.TLS
:m +Data.Text
let token = Token $ Data.Text.pack "your_token_goes_here"
let manager = newManager tlsManagerSettings
manager >>= \m -> subscribedApps $ Just token m
You should get a positive response or (in case of inactive token):
Left (FailureResponse {responseStatus = Status {statusCode = 400, statusMessage = "Bad Request"}, responseContentType = application/json, responseBody = "{\"error\":{\"message\":\"Invalid OAuth access token.\",\"type\":\"OAuthException\",\"code\":190,\"fbtrace_id\":\"ESxHmUos2B+\"}}"})
Contribution
- Fork repository
- Do some changes
- Create pull request
- Wait for CI build and review
You can use stack to build the project
stack build
To run tests
stack test
TODO
- Tests for the network part of the api (hard, requires a bot setted up and permanently running just for the tests)
- Check if assumption on https://github.com/mseri/fbmessenger-api-hs/blob/master/src/Web/FBMessenger/API/Bot/WebhookAPI.hs#L99 is safe
- Cleanup Webhooks API Requests and add higher level helpers
*Note that all licence references and agreements mentioned in the fbmessenger-api README section above
are relevant to that project's source code only.