beeminder / wp-beeminder

A WordPress plugin that will ping a Beeminder goal whenever a post is published. Perfect if you want to stick to a new posting schedule.
Other
0 stars 2 forks source link

Improve username / auth key pair process for non-techies #9

Open MatthewEppelsheimer opened 6 years ago

MatthewEppelsheimer commented 6 years ago

Current process:

The current process may seem straightforward, but it requires some knowledge we developer-types take for granted that is certain to lose some folks. It also requires some manual steps that could be easily automated.

  1. Log in to Beeminder.com
  2. Visit https://www.beeminder.com/api/v1/auth_token.json
  3. Identify the auth_token key's value, and copy just that part
  4. Within your WordPress dashboard, navigate to Settings > Beeminder
  5. Paste the key into the Beeminder API field

(Step 2 is where we lose some non-technical people.)

Proposed process:

The goal here is to automate as much as possible, and minimize what the user has to do.

  1. Log into Beeminder.com
  2. Within your WordPress dashboard, if you haven't already gone through this process, then you're prompted to visit the Settings > Beeminder page with an admin message
  3. When you visit the Settings > Beeminder page, if you haven't already gone through this process,
    • THEN, if you're logged into Beeminder.com (because you didn't skip step 0):
      • THEN: WP automatically fetches (curl essentially, but we'll actually use WordPress' "HTTP API") the username & key and sets it for you via AJAX. If you skipped Step 0, UI prompts you to login and refresh the page.
      • ELSE: You're prompted to log in to Beeminder.com and then refresh
  4. See a message saying you're set up successfully as username [username].

Thoughts / questions:

dreeves commented 6 years ago

We might need @bsoule's help thinking this through more carefully but isn't oauth the right way to automate this? Ie, in the Beeminder API docs, skip the "personal auth" section -- what the current process uses -- and instead use this: http://api.beeminder.com/#client-oauth-oauth