项目作者: watanabeyu

项目描述 :
Twitter API client for react native without react-native link and react custom hook
高级语言: TypeScript
项目地址: git://github.com/watanabeyu/react-native-simple-twitter.git
创建时间: 2017-12-21T16:17:17Z
项目社区:https://github.com/watanabeyu/react-native-simple-twitter

开源协议:MIT License

下载


If you have request, Please send a PR or issue.

  • please see CHANGELOG.md
  • TWLoginButton / twitter.get() / twitter.post() will be removed on next version (v3.1.0).

React-Native-Simple-Twitter v3.0

Twitter API client for React Native without react-native link.
This package don’t use NativeModule, only pure javascript.
So don’t need to use react-native link and Expo can also easily use twitter API without auth0 and server.

You can use custom hooks from v3.0

  1. ...
  2. import { useTwitter } from "react-native-simple-twitter";
  3. function Login() {
  4. // if login, please set onSuccess
  5. const { twitter,TWModal } = useTwitter({
  6. onSuccess:(user,accessToken) => {
  7. console.log(user);
  8. console.log(accessToken);
  9. }
  10. });
  11. const onLoginPress = async () => {
  12. try {
  13. await twitter.login();
  14. } catch(e) {
  15. console.log(e.errors);
  16. }
  17. }
  18. useEffect(() => {
  19. twitter.setConsumerKey("key","secret");
  20. },[]);
  21. ...
  22. return (
  23. <View>
  24. <Text onPress={onLoginPress}>login</Text>
  25. <TWModal ></TWModal>
  26. </View>
  27. )
  28. }

Checkout v3.x example.

Previous version -> v2.4.1

Installation

This package use WebView, but WebView from react-native is deprecated, so you download with react-native-webview.

  1. $ npm install react-native-simple-twitter react-native-webview --save

if you want to use more twitter types, use abraham/twitter-d

  1. $ npm install --save-dev twitter-d

Demo

demo gif

useTwitter API

  1. import { useTwitter } from 'react-native-simple-twitter';
  2. const { twitter, TWModal } = useTwitter({
  3. onSuccess:(user,accessToken) => void,
  4. onError?:(err) => void,
  5. })

useTwitter()

Name Description
onSuccess:(user,accessToken) => void return loggedin user object and access token
onError?:(err) => void if login failed, call this method

twitter

Name Description
twitter.login() Get login url and open TWModal
twitter.setConsumerKey(consumer_key,consumer_key_secret) set application key and secret
twitter.getAccessToken() get access_token and access_token_secret, when user logged in app
twitter.setAccessToken(access_token,access_token_secret) set user access_token and access_token_secret, when you already have access_token and access_token_secret
`twitter.api(“GET” “POST” “PUT” “DELETE” “PATCH”,endpoint,parameters?)` call twitter api
twitter.get(endpoint,parameters) alias of twitter.api. this method will be deprecated
twitter.post(endpoint,parameters) alias of twitter.api. this method will be deprecated

Other API

  • decodeHTMLEntities
    ```js
    import { decodeHTMLEntities } from ‘react-native-simple-twitter’

console.log(decodeHTMLEntities(“& ‘ ‘ / ‘ / < > “”))

  1. Tweet is include htmlencoded characters.
  2. So this function decode special characters.
  3. * getRelativeTime
  4. ```js
  5. import { getRelativeTime } from 'react-native-simple-twitter'
  6. console.log(getRelativeTime(new Date(new Date().getTime() - 32390)))
  7. console.log(getRelativeTime("Thu Apr 06 15:28:43 +0000 2017"))

Tweet created_at convert to relative time.
ex) 1s 15m 23h