Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/gologinapp/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
https://github.com/gologinapp/gologin
Last synced: about 2 months ago
JSON representation
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
- Host: GitHub
- URL: https://github.com/gologinapp/gologin
- Owner: gologinapp
- Created: 2020-03-17T19:00:17.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2024-07-15T13:37:10.000Z (2 months ago)
- Last Synced: 2024-07-16T13:56:51.872Z (2 months ago)
- Language: JavaScript
- Size: 40.6 MB
- Stars: 104
- Watchers: 16
- Forks: 79
- Open Issues: 37
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 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](https://user-images.githubusercontent.com/12957968/146891933-c3b60b4d-c850-47a5-8adf-bc8c37372664.gif)
### Example
```js
import puppeteer from 'puppeteer-core';import GoLogin from '../src/gologin.js';
const { connect } = puppeteer;
(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 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)
- `skipOrbitaHashChecking` <[boolean]> skip hash checking for Orbita after downloading process (default false)```js
import GoLogin from '../src/gologin.js';
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
**Swagger:** link here**Postman:** 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
```js
import puppeteer from 'puppeteer-core';import GoLogin from '../src/gologin.js';
const { connect } = puppeteer;
(async () => {
const GL = new GoLogin({
token: 'yU0token',
profile_id: 'yU0Pr0f1leiD',
executablePath: '/usr/bin/orbita-browser/chrome',
tmpdir: '/my/tmp/dir',
});const wsUrl = await GL.startLocal();
const browser = await connect({
browserWSEndpoint: wsUrl.toString(),
ignoreHTTPSErrors: true,
});const page = await browser.newPage();
await page.goto('https://myip.link');
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