@twreporter/dual-channel v2.1.0-rc.0
Dual-channel
Dual Channel is a React Component to simultaneously present paragraphs and images in the browser viewport.
Developer Document
Install
Install dependencies:
make check-depDev
make dev-serverBuild
make buildTest Embedded Code with Mock Data
make test-embedded-codeImport React Component
You can import either
Option 1:
import dualChannel from '@twreporter/dual-channel'
const ReactComponent = dualChannel.ReactComponentor
Option 2:
import ReactComponent from '@twreporter/dual-channel/lib/app'Data
Reproduce Demo Data
The demo data file is dev/data.json,
and it is generated from this demo spreadsheet.
You can reproduce dev/data.json by the following sample codes.
import Sheets from './src/sheets'
import path from 'path'
import fs from 'fs'
const sheets = new Sheets({
spreadsheetId: '1Ppisv4HTZHYMp95umgCoADNuP1PSkL-t9na-5lRIqSY',
keyFile: path.resolve(__dirname, './spreadsheet-api-key-file.json'),
targetSheetsId: [2143095237, 492967532, 2049208510, 489341977, 1453335111],
})
sheets.getJSONData().then(data => {
fs.writeFileSync(
path.resolve(__dirname, './dev/data.json'),
JSON.stringify(data),
{ encoding: 'utf8' }
)
})In the above sample codes,
you have to download service account and name it as spreadsheet-api-key-file.json.
The service account is used to be authenticated by Google Sheet API.
If you don't have service account, you can create one by
- Go to the Developer Console
- Click your project or create one if you have none
- Click
APIs & Servicestab - Click
Credentialstab - Click
Manage service accountstab - Create service account.
Besides createing service account, you also have to enable Google Sheets API.
- Go to the Developer Console
- Click your project
- Click
APIs & Servicestab - Click
Librarytab - search
Google Sheets API - enable
Google Sheets API
Build Embedded Code
import dualChannelUtils from '@twreporter/dual-channel'
const sheets = new dualChannelUtils.Sheets({
spreadsheetId: '1Ppisv4HTZHYMp95umgCoADNuP1PSkL-t9na-5lRIqSY',
keyFile: path.resolve(__dirname, './spreadsheet-api-key-file.json'),
targetSheetsId: [2143095237, 492967532, 2049208510, 489341977, 1453335111],
})
sheets
.getJSONData()
.then(data => {
return dualChannelUtils.buildEmbeddedCode(data)
})
.then(embeddedCode => {
// You could copy embeddedCode and past it in html file
})Troubleshooting
I got 'Insufficient Permission' or 'The caller does not have permission' error message
- You should check if service account is provided, make sure you give the right file path.
- Make sure you already enable your
Google Sheets APIin your project. - Find your service account email.
$ cat spreadsheet-api-key-file.json | grep client_emailand share your spreadsheet with your service account email.
Using webpack to bundle dual channel react component occurs errors
You can adopt Option 2 described in https://github.com/twreporter/dual-channel#import-react-component
In addition, you can add target: 'node' in your webpack config. (See https://webpack.js.org/concepts/targets/#usage)
Adding target: 'node' prevents webpack from bundling nodejs built-in modules.
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago