# @broid/twitter

> Convert Twitter messages into Activity Streams 2 with Broid Integration

Latest version **2.2.0** (published 2017-09-17) · AGPL-3.0+ license · 0 weekly downloads

## Install

```sh
npm install @broid/twitter
pnpm add @broid/twitter
yarn add @broid/twitter
bun add @broid/twitter
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 2.2.0 |
| Published | 2017-09-17 |
| First published | 2017-03-25 |
| Weekly downloads | 0 |
| License | AGPL-3.0+ |
| TypeScript types | none |
| Module format | CommonJS |
| Node | >=6.0.0 |
| Dependencies | 9 |
| Known vulnerabilities | 0 (+1 in 1 direct dependencies) |
| Install scripts | no |
| GitHub stars | 740 |
| Author | Broid Team |
| Maintainers | broidy, dustinblackman, killix |
| Keywords | twitter, broid, activity, strams, activity streams 2, messaging, chat, bot |

## Links

- npm: https://www.npmjs.com/package/@broid/twitter
- Repository: https://github.com/broidHQ/integrations
- Homepage: https://github.com/broidHQ/integrations/tree/master/broid-twitter#readme
- Issues: https://github.com/broidHQ/integrations/issues
- npm.io page: https://npm.io/package/@broid/twitter

## Dependencies (9)

- [rxjs](https://npm.io/package/rxjs.md) ^5.0.2
- [uuid](https://npm.io/package/uuid.md) ^3.1.0
- [ramda](https://npm.io/package/ramda.md) ^0.23.0
- [sinon](https://npm.io/package/sinon.md) ^2.1.0
- [twitter](https://npm.io/package/twitter.md) ^1.7.0
- [bluebird](https://npm.io/package/bluebird.md) ^3.4.7
- [@broid/utils](https://npm.io/package/@broid/utils.md) ^1.1.1
- [@broid/schemas](https://npm.io/package/@broid/schemas.md) ^1.0.1
- [request-promise](https://npm.io/package/request-promise.md) ^4.1.1

## Alternatives

- [byte-size](https://npm.io/package/byte-size.md) — 2.1M weekly downloads
- [speed-limiter](https://npm.io/package/speed-limiter.md) — 16.0K weekly downloads
- [@powersync/node](https://npm.io/package/@powersync/node.md) — 10.9K weekly downloads
- [@ledgerhq/coin-cardano](https://npm.io/package/@ledgerhq/coin-cardano.md) — 1.0K weekly downloads
- [@jayesol/jayeson.lib.streamfinder](https://npm.io/package/@jayesol/jayeson.lib.streamfinder.md) — 1.0K weekly downloads

## Recent versions

- 2.2.0 (latest) — 2017-09-17
- 2.1.1 — 2017-07-10
- 2.1.0 — 2017-07-01
- 2.0.0 — 2017-04-13
- 1.0.0 — 2017-03-25

## README

[npm]: https://img.shields.io/badge/npm-broid-green.svg?style=flat
[npm-url]: https://www.npmjs.com/org/broid

[node]: https://img.shields.io/node/v/@broid/twitter.svg
[node-url]: https://nodejs.org

[deps]: https://img.shields.io/badge/dependencies-checked-green.svg?style=flat
[deps-url]: #integrations

[tests]: https://img.shields.io/travis/broidHQ/integrations/master.svg
[tests-url]: https://travis-ci.org/broidHQ/integrations

[bithound]: https://img.shields.io/bithound/code/github/broidHQ/integrations.svg
[bithound-url]: https://www.bithound.io/github/broidHQ/integrations

[bithoundscore]: https://www.bithound.io/github/broidHQ/integrations/badges/score.svg
[bithoundscore-url]: https://www.bithound.io/github/broidHQ/integrations

[nsp-checked]: https://img.shields.io/badge/nsp-checked-green.svg?style=flat
[nsp-checked-url]: https://nodesecurity.io

[![npm][npm]][npm-url]
[![node][node]][node-url]
[![deps][deps]][deps-url]
[![tests][tests]][tests-url]
[![bithound][bithound]][bithound-url]
[![bithoundscore][bithoundscore]][bithoundscore-url]
[![nsp-checked][nsp-checked]][nsp-checked-url]

# Broid Twitter Integration

Broid Integrations is an open source project providing a suite of Activity Streams 2 libraries for unified communications among a vast number of communication platforms.

> Connect your App to Multiple Messaging Channels with  One OpenSource Language.

[![gitter](https://badges.gitter.im/broidHQ/broid.svg)](https://t.broid.ai/c/Blwjlw?utm_source=github&utm_medium=readme&utm_campaign=top&link=gitter)

## Message types supported

| Simple | Image | Video | Buttons | Location | Phone number |
|:------:|:-----:|:-----:|:-------:|:--------:|:------------:|
|   ✅    |   ✅   |   ✅   |         |          |              |

_Buttons, Location, Phone number are platform limitations._

## Getting started

### Install

```bash
npm install --save @broid/twitter
```

### Connect to Twitter

```javascript
const BroidTwitter = require('@broid/twitter');

const twitter = new BroidTwitter({
  username: '@mention',
  token: "<access_token>",
  tokenSecret: "<access_secret>",
  consumerSecret: "<consumer_secret>",
  consumerKey: "<consumer_key>"
});

twitter.connect()
  .subscribe({
    next: data => console.log(data),
    error: err => console.error(`Something went wrong: ${err.message}`),
    complete: () => console.log('complete'),
  });
```

**Options available**

| name             | Type     | default    | Description  |
| ---------------- |:--------:| :--------: | --------------------------|
| serviceID       | string   | random     | Arbitrary identifier of the running instance |
| logLevel        | string   | `info`     | Can be : `fatal`, `error`, `warn`, `info`, `debug`, `trace` |
| token           | string   |            | Your access token |
| tokenSecret     | string   |            | Your access token secret |
| consumerSecret  | string   |            | Your consumer secret |
| consumerKey     | string   |            | Your consumer key |
| username        | string   |            | Your username to listen Twitter mention |


### Receive a message

```javascript
twitter.listen()
  .subscribe({
    next: data => console.log(`Received message: ${data}`),
    error: err => console.error(`Something went wrong: ${err.message}`),
    complete: () => console.log('complete'),
  });
```

### Post a message

To send a message, the format should use the [broid-schemas](https://github.com/broidHQ/integrations/tree/master/broid-schemas).

```javascript
const formatted_message = {
  "@context": "https://www.w3.org/ns/activitystreams",
  "type": "Create",
  "generator": {
    "id": "f6e92eb6-f69e-4eae-8158-06613461cf3a",
    "type": "Service",
    "name": "twitter"
  },
  "object": {
    "type": "Note",
    "content": "hello world"
  },
  "to": {
    "type": "Person",
    "id": "152486124831181614"
  }
};

twitter.send(formatted_message)
  .then(() => console.log("ok"))
  .catch(err => console.error(err));
```

## Examples of messages

You can find examples of sent and received messages at [Broid-Schemas](https://github.com/broidHQ/integrations/tree/master/broid-schemas).

## Contributing to Broid

See [CONTRIBUTE.md](../CONTRIBUTE.md)

## Copyright & License

Copyright (c) 2016-2017 Broid.ai

This project is licensed under the AGPL 3, which can be
[found here](https://www.gnu.org/licenses/agpl-3.0.en.html).

---
_Source: https://npm.io/package/@broid/twitter · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
