Comments (2)
A hacky workaround is to put a "fake" xdg-open
on the path and use it to gain the details required to complete the flow.
For example, in a new directory bin
, create the file xdg-open
with content:
#!/usr/bin/env bash
set -euf -o pipefail
curl -Ls -o /dev/null -w %{url_effective} "$1" > /tmp/smartthings-login
Make the file executable and add it to the path:
$ chmod +x bin/xdg-open
$ export PATH="${PATH}:${PWD}/bin"
Start the login flow (will not fail because it calls the fake xdg-open
and waits for auth flow to complete):
$ ./smartthings apps
logging in... ⣻
In a different terminal (e.g. tmux; another SSH session), read the link to open in the file that was written:
$ cat /tmp/smartthings-login
https://account.smartthings.com/login?redirect=...
Copy and paste the URL into your browser and compelete the flow. The final page will redirect to a localhost address that your browser won't open correctly (because it's not on the localhost of the browser at that point). Copy the URL (contains the auth code) and feed it back via the same terminal you read the tmp file in:
$ curl 'http://localhost:61973/finish?code=YOURCODE'
<html><body><h1>You can close the window.</h1></body></html>
Success:
$ ./smartthings apps
logging in... done
...
$ cat ~/.config/@smartthings/cli/credentials.json
{
"default": {
"accessToken": ...
...
}
}
from smartthings-cli.
The default login flow isn't intended for use on a headless machine. We recommend using a PAT for this situation.
https://github.com/SmartThingsCommunity/smartthings-cli#authentication
from smartthings-cli.
Related Issues (20)
- question: how to launch nextflix on smart tv using postman or cli HOT 2
- Access certain features only(?) available in the app HOT 4
- Sunrise, sunset, location 'attributes' and the services endpoint. HOT 3
- smartthings edge:channels:unenroll unenrolls hubs from channels they weren't enrolled in to start with HOT 1
- Please correct 'no capabilitys found' to 'no capabilities found' - it's hard to ignore once you've seen it.
- smartthings devices:history DEVICEID producing empty JSON output and a YAML error. HOT 1
- question: Why I'm getting Unexpected error from event source Event HOT 1
- add CLI commands for coordinate API where it makes sense
- Reporting a vulnerability HOT 1
- Enabling and disabling Rules via the CLI. HOT 2
- firmware update HOT 3
- Using Smartthings-cli with Samsung Odyssey G7 only lists HDMI inputs HOT 2
- question: Can the CLI be used to test device specific control commands? HOT 3
- Force driver restart HOT 3
- device commands hub: reboot HOT 1
- devices:history flags before/after issues
- [feat] Add a flag to the `devices` command to filter devices by which Hub they're joined to
- How to display temperature instead of humidity with SONOFF SNZB-02 probes? HOT 3
- Cannot log in: "'redirect_uri' could not be validated" HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from smartthings-cli.