Skip to content
This repository has been archived by the owner on May 17, 2021. It is now read-only.

fanfoujs/fanfou-sdk-weapp

Repository files navigation

fanfou-sdk-weapp

Fanfou SDK for WeApp

The package is for WeApp, if you are developing with Node.js, please use fanfou-sdk.

Install

$ npm i fanfou-sdk-weapp

Or either of this below:

  • Add this repo as submodule to your project
  • Copy the src directory to your project

Usage

const Fanfou = require('fanfou-sdk-weapp')
// or
const Fanfou = require('./src/index');

OAuth

const ff = new Fanfou({
  consumerKey: '',
  consumerSecret: '',
  oauthToken: '',
  oauthTokenSecret: ''
});

ff.get('/statuses/home_timeline', {format: 'html'})
  .then(res => console.log(res))
  .catch(err => console.log(err));

XAuth

const ff = new Fanfou({
  consumerKey: '',
  consumerSecret: '',
  username: '',
  password: ''
});

ff.xauth()
  .then(res => {
    console.log(res)
    ff.get('/statuses/public_timeline', {count: 10})
      .then(res => console.log(res))
      .catch(err => console.log(err));

    ff.post('/statuses/update', {status: 'Hi Fanfou'})
      .then(res => console.log(res))
      .catch(err => console.log(err));
  });

Options

  • consumerKey: The consumer key
  • consumerSecret: The consumer secret
  • oauthToken: The OAuth token
  • oauthTokenSecret: The OAuth token secret
  • username: The Fanfou username
  • password: The Fanfou password
  • protocol: Set the prototol, default is https:
  • apiDomain: Set the API domain, default is api.fanfou.com
  • oauthDomain: Set the OAuth domain, default is fanfou.com
  • hooks: Hooks allow modifications with OAuth

For more Fanfou API docs, see the Fanfou API doc.

API

ff.xauth();
ff.get(uri, params);
ff.post(uri, params);
ff.upload(uri, fileObject, parameters);

Examples

// OAuth
ff.get('/statuses/home_timeline', {})
  .then(res => console.log(res))
  .catch(err => console.log(err));

ff.post('/statuses/update', {status: 'post test'})
  .then(res => console.log(res))
  .catch(err => console.log(err));

// Upload
wx.chooseImage({
  count: 1,
  sizeType: ['original', 'compressed'],
  sourceType: ['album', 'camera'],
  success: res => {
    const {tempFilePaths} = res;
    const [fileObject] = tempFilePaths;
    ff.upload('/photos/upload', fileObject, {})
      .then(res => console.log(res))
      .catch(err => console.log(err));
  }
});

// XAuth
ff.xauth()
  .then(res => {
    ff.get('/statuses/public_timeline', {})
      .then(res => console.log(res))
      .catch(err => console.log(err))
  })
  .catch(err => console.log(err));

Tips

Use hooks for your reverse-proxy server

const ff = new Fanfou({
  consumerKey: '',
  consumerSecret: '',
  oauthToken: '',
  oauthTokenSecret: '',
  apiDomain: 'api.example.com',
  oauthDomain: 'example.com',
  hooks: {
    baseString: str => {
      return str.replace('example.com', 'fanfou.com');
    }
  }
});

Related

License

MIT