https://github.com/pierrecapo/react-native-socials
Twitter, Instagram, (and more!) into your react-native app
https://github.com/pierrecapo/react-native-socials
Last synced: about 1 year ago
JSON representation
Twitter, Instagram, (and more!) into your react-native app
- Host: GitHub
- URL: https://github.com/pierrecapo/react-native-socials
- Owner: PierreCapo
- Created: 2020-04-06T00:14:45.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2023-01-26T19:13:12.000Z (over 3 years ago)
- Last Synced: 2025-04-07T17:47:55.432Z (about 1 year ago)
- Language: TypeScript
- Homepage:
- Size: 6.62 MB
- Stars: 125
- Watchers: 2
- Forks: 11
- Open Issues: 21
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# React Native Socials
Embedding posts from popular social networks in your react-native app.
## Install
The library is still in version 0, be cautious when you upgrade it! 🚧
```
yarn add react-native-socials
```
It is also needed to add `react-native-video` in your project because social components usually contains embeded videos. See [react-native-video](https://github.com/react-native-community/react-native-video) library for more information about the installation.
Finally, it is recommended to wrap those components into PureComponent because some of them can be costly to rerender (videos for instance).
### Instagram
**WARNING** as of summer 2020, Instagram has added a firewall to prevent scripts to access its unofficial API.
It's planned in the migrate and use the official Instagram API.
| Light | Dark |
| ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------ |
| | |
```JSX
import {Instagram} from "react-native-socials";
```
Props:
| Name | Type | Default | Description |
| --------------------- | ----------- | --------------------------------------------- | ------------------------------------------------ |
| id | string | **Required** | Instagram post id |
| darkMode | bool | false | Toggle dark mode |
| language | string enum | "en" - "de" - "fr" - "es" - "pt" - "it" -"ru" | Pick language for metadata of the post |
| containerBorderRadius | number | 0 | Border radius of the container of the UI element |
### Twitter
| Light | Dark |
| ----------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- |
| | |
```JSX
import {Twitter} from "react-native-socials";
```
Unlike Instagram, the **Twitter API is not open**. It is needed that you register your app (free version) to the Twitter portal to be able to fetch Twitter posts.
Props:
| Name | Type | Default | Description |
| -------------------------- | ---------------------------- | ------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| id | string | **Required** | Twitter post id |
| consumerKey | string | **Required** | OAuth 1.0 Twitter key that is granted when you [register your app on Twitter Portal](https://developer.twitter.com/en/docs/basics/authentication/oauth-1-0a) |
| consumerSecret | string | **Required** | OAuth 1.0 Twitter secret that is granted when you [register your app on Twitter Portal](https://developer.twitter.com/en/docs/basics/authentication/oauth-1-0a) |
| darkMode | bool | false | Toggle dark mode |
| language | string enum | "en" | Pick language for metadata of the post |
| onHashTagPress | (hashtag:string) => void | Redirect to webpage | Overrides default behavior when pressing an hashtag in a Tweet |
| onUserMentionPress | (userMention:string) => void | Redirect to webpage | Overrides default behavior when pressing a user mention in a Tweet |
| onLinkPress | (link:string) => void | Redirect to webpage | Overrides default behavior when pressing a link in a Tweet |
| cornerRadius | string enum | "small" | Chose the corner radius of UI elements in a post. Typically a post taking the whole width of the screen should have "big" whereas a post in a card should use the "small" value |
| containerBorderRadius | number | 0 | Border radius of the container of the UI element |
| onTweetPress | (tweetId:string) => void | Redirect to webpage | Overrides default behavior when pressing the tweet |
| useCustomTweetExtendedData | Object | null | Use this prop when you have already fetched the Twitter data in the app, and you want to call the component with the Twitter data as prop that you already have fetched. This object needs to be **exactly** the response of the call to the Twitter API with the **?tweet_mode=extended** parameter, like: https://api.twitter.com/1.1/statuses/show/1265128375707983872.json?tweet_mode=extended |