[EN] jsup-blog experiment: access token for Google Blogger

in Steem Dev7 months ago (edited)

jsup-blog experiment: bridge between Steemit & Google Blogger

To use Google Blogger API, an access token must be issued via protocol called "OAuth 2.0". You get "OAuth client ID" and then generate "credentials.json" file. Of course you must have a Google blog.

The procedure is as follows.

Sign to your Google Account with using a web browser, and then go to Blogger section of Google for Developers page. Check the link below:

Blogger API: Using the API

You will see a blue button labeled as "Get an OAuth client ID". Click it, and then select "Create a new project".

blogger_api_01.jpg

Specify project name and prduct name. Set category as "Desktop App". Then click "CREATE" button.

blogger_api_02.jpg

blogger_api_03.proc.jpg

blogger_api_04.jpg

API setting is complete. Now click "DOWNLOAD CLIENT CONFIGURATION" button to download credentials.json file.

blogger_api_05.proc.jpg

Now, you need to generate token file for @jsup service. This procedure requires python installed.

First, install python modules for Google API with the following command:

pip3 install google-api-python-client

pip3 install google-auth-oauthlib

Make a python script and save it in the directory which contains credentials.json file. Use the following python code and save the script as get_token.py.

import pickle
from pathlib import Path
from google.auth.transport.requests import Request
from google_auth_oauthlib.flow import InstalledAppFlow

SCOPES = ['https://www.googleapis.com/auth/blogger']    
client_sec = 'credentials.json'

if Path(client_sec).exists():
    print("found:", client_sec)
else:
    print("ERROR:", client_sec, "NOT FOUND!")
    exit()

creds = None
if Path("auto_token.pickle").exists():
    with open('auto_token.pickle', 'rb') as token:
        creds = pickle.load(token)
if not creds or not creds.valid:
    if creds and creds.expired and creds.refresh_token:
        print("trying to refresh token")
        creds.refresh(Request())
    else:
        flow = InstalledAppFlow.from_client_secrets_file(client_sec, SCOPES)
        creds = flow.run_local_server(port=0)
    print("saving auto_token.pickle")
    with open('auto_token.pickle', 'wb') as t:
        pickle.dump(creds, t)
else:
    print("OK: valid pickle file")

Run the script with the following command:

python3 get_token.py

The script will launch web browser, and you will be asked to grant access for the cliend ID. Allow access to generate auto_token.pickle file.

@jsup service needs this token file to connect with Google Blogger. I'm planning to receive the file via email and manually register it with @jsup service.


@joviansummer's STEEM projects

@jswit witness project:
I'm running a STEEM witness node. I'd really appreciate it if you vote for my witness account @jswit. (https://steemitwallet.com/~witnesses)
[ENG] Introducing @jswit witness project

@jsup curation project:
[ENG] Introduction to @jsup curation project
[ENG] Using @jsup curation project as an auto-voting agent
[ENG] jsup 2.0 - make your upvote great again

jSTEEM project:
jSTEEM project - STEEM blockchain explorer on Telegram messenger

STEEM.NFT project:
STEEM.NFT - Preserve your art on Steemit & IPFS

Steemit-Search project:
Steemit-Search: a simple website for post searching

Sort:  

Thank you, friend!
I'm @steem.history, who is steem witness.
Thank you for witnessvoting for me.
image.png
please click it!
image.png
(Go to https://steemit.com/~witnesses and type fbslo at the bottom of the page)

The weight is reduced because of the lack of Voting Power. If you vote for me as a witness, you can get my little vote.

Upvoted! Thank you for supporting witness @jswit.

Coin Marketplace

STEEM 0.23
TRX 0.12
JST 0.029
BTC 66369.30
ETH 3437.36
USDT 1.00
SBD 3.25