Vaviloff / gologin

REST API provides programmatic access to GoLogin App. Create a new browser profile, get a list of all browser profiles, add a browser profile and runnig

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

class GoLogin - class for working with gologin.com API

Official Package

Getting Started

GoLogin supports Linux, MacOS and Windows platforms.

Installation

npm i gologin

for running example.js install puppeteer-core

npm i puppeteer-core

Usage

Where is token? API token is here. To have an access to the page below you need register GoLogin account.

Token API in Settings

Example

const puppeteer = require('puppeteer-core');
const GoLogin = require('gologin');

(async () =>{
    const GL = new GoLogin({
        token: 'yU0token',
        profile_id: 'yU0Pr0f1leiD',
    });

    const { status, wsUrl } = await GL.start().catch((e) => {
      console.trace(e);
      return { status: 'failure' };
    });

    if (status !== 'success') {
      console.log('Invalid status');
      return;
    }

    const browser = await puppeteer.connect({
        browserWSEndpoint: wsUrl.toString(), 
        ignoreHTTPSErrors: true,
    });

    const page = await browser.newPage();
    await page.goto('https://myip.link/mini');   
    console.log(await page.content());
    await browser.close();
    await GL.stop();
})();

Running example:

DEBUG=gologin* node example.js

Methods

constructor

  • options <[Object]> Options for profile
    • autoUpdateBrowser <[boolean]> do not ask whether download new browser version (default false)
    • token <[string]> your API token
    • profile_id <[string]> profile ID
    • executablePath <[string]> path to executable Orbita file. Orbita will be downloaded automatically if not specified.
    • remote_debugging_port <[int]> port for remote debugging
    • vncPort <[integer]> port of VNC server if you using it
    • tmpdir <[string]> path to temporary directore for saving profiles
    • extra_params arrayof <[string]> extra params for browser orbita (ex. extentions etc.)
    • uploadCookiesToServer <[boolean]> upload cookies to server after profile stopping (default false)
    • writeCookesFromServer <[boolean]> download cookies from server and write to profile cookies file (default true)
const GoLogin = require('gologin');
const GL = new GoLogin({
    token: 'yU0token',
    profile_id: 'yU0Pr0f1leiD',
});

start()

  • returns: <[object]> { status, wsUrl }

start browser with profile id, returning WebSocket url for puppeteer

stop()

stop browser with profile id

DEBUG

For debugging use DEBUG=* node example.js command

Selenium

To use GoLogin with Selenium see selenium/example.js

Full GoLogin API

API link here

For local profiles

startLocal()

  • returns: string

start browser with profile id, return WebSocket url for puppeteer. Extracted profile folder should be in specified temp directory.

stopLocal()

stop current browser without removing archived profile

example-local-profile.js

const puppeteer = require('puppeteer-core');
const GoLogin = require('gologin');

(async () =>{
    const GL = new GoLogin({
        token: 'yU0token',
        profile_id: 'yU0Pr0f1leiD',
        tmpdir: '/my/tmp/dir',
    });
    const { status, wsUrl } = await GL.start(); 
    const browser = await puppeteer.connect({
        browserWSEndpoint: wsUrl.toString(), 
        ignoreHTTPSErrors: true,
    });

    const page = await browser.newPage();
    await page.goto('https://myip.link/mini');   
    console.log(await page.content());
    await browser.close();
    await GL.stopLocal({posting: false});
})();

Python support

pyppeteer (recommend) and Selenium supported (see file gologin.py)

for Selenium may need download webdriver

About

REST API provides programmatic access to GoLogin App. Create a new browser profile, get a list of all browser profiles, add a browser profile and runnig


Languages

Language:JavaScript 86.6%Language:Python 13.3%Language:Shell 0.1%