Skip to content

Latest commit

History

15 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Form-parser

form-reader is a part of a bigger project aiming to support Unofficial Facebook Graph. It allows you to submit your custom data to every facebook form.

Installation

npm i form-reader

Usage

You can login facebook with your own account get a valid cookie for later use. Notice: won't work with 2-factor authen accounts.

constFormReader=require('form-reader')constformReader=newFormReader({willSendRequest: {headers: {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36',},},})constloginURL='https://mbasic.facebook.com/'const{ headers }=awaitthis.formReader.pipeline([{formAt: 0,willSubmit: (requiredFields,submitFields)=>({
...requiredFields,login: submitFields.login,email: <YOUR_USER_NAME>,
pass: <YOURPASSWORD>,
}),},]).startWith(loginURL)constcookie=headers['set-cookie'].map(c=>c.split(';')[0]).join(';')

After having a valid cookie, you can do lots of awesome stuff. for example post a message to your facebook

constFormReader=require('form-reader')constformReader=newFormReader({willSendRequest: {headers: {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36',cookie: <YOUR_VALID_COOKIE>},},})awaitthis.formReader.pipeline([{formAt: 1,willSubmit: (requiredFields,submitFields)=>({
...requiredFields,xc_message: <YOUR_MESSAGE>,
view_post: submitFields.view_post,
}),},]).startWith('https://mbasic.facebook.com/')

Initialize

constformReader=newFormReader(options)

options is an object, it contains properties:

  • useCache - use your url to cache http request (type: bool, default: false)
  • willSendRequest - pass to option of request (type: <object|function>, default: {})

Pipeline

You can create a sequence of form submits by using pipeline

formReader.pipeline([stage1,stage2, ...]).start(URL)

a stage must contains properties

  • formAt - position of form (type: int, default: 0)
  • willSubmit - provide all fields of form in requiredFields and posible submit actions in submitFields
  • willSendRequest - provide response from previous request, which help you to decide url, headers, ... of next stage
  • nextURL - provide response from previous request, has to return a url for next step

Transpoter

If you want to keep the same headers of a previous step to crawle data from other page then using

consttransporter=formReader.getTransporter(URL)constresponse=awaittransporter.get()

About

Unofficial Facebook Graph

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages