分類
好用軟體

使用Google Spreadsheet產生條碼(Barcode)

使用 Google 的 Spreadsheet 產生條碼, 其實是使用外部 API 來達成, 配合 Spreadsheet 中的函數:

=image(url, [mode], [width], [height])

來進行. 函數說明可以參考: https://support.google.com/docs/answer/3093333

這裡使用了兩家 API, 1 為 barcodesinc, 2 為 tec-it 這兩個 api.

1. https://www.barcodesinc.com/generator/
2. https://barcode.tec-it.com/

以舒潔衛生紙為例, 國際條碼為: 4710114813019

若生成 CODE 128 使用 barcodesinc 使用 url:
https://www.barcodesinc.com/generator_files/image.php?code=4710114813019&style=196&type=C128A&width=200&height=100&xres=1&font=3

若生成 EAN13 使用 tec-it 使用 url:
https://barcode.tec-it.com/barcode.ashx?data=4710114813019&code=EAN13&dpi=96&dataseparator=

若資料為變數儲存格, 則使用以下語法:
=image(“http://www.barcodesinc.com/generator/image.php?code=” & C3 & “&style=196&type=C128A&width=200&height=100&xres=1&font=3”)

以下為範例結果:

填入即可, 參考範例文檔:
https://goo.gl/v6rc4L

分類
程式技術

使用Google Drive API讀取文件內容供前端應用

有時在做一些小型的前端介面, 需要 CMS (內容管理系統) 的上稿功能, 來進行內容管理, 不過實做上稿系統需要相當的時間與設計, 若能使用更簡便的方式, 將能大量節省維護的成本, 例如使用 WordPress 或今天要介紹的 Google Drive API.

使用共用文件的方式來管理內容, 除了介面不用再實做外, 也可以透過權限管理來做一些設限, 方便存取與更新. 這次介紹的 API 是讀取 Google Docuemnt 的內容來供應前端應用, 所以就是讓程式讀取內容, 而使用者則是使用 Google Document 來更新內容.

會使用到的 API 為 Google Drive API 中的 file export, 目前已是 v3 的版本了, 可以參考:

https://developers.google.com/drive/v3/reference/files/export

如何使用呢, 首先在 Google Drive 新增一個 Google文件(Document)檔案, 並開放為擁有連結的人都可以檢視, 並取得該檔案的 fileId, fileId 就是在 URL 上會看到或是 share link 上會看到的一串英數, 有區分大小寫, 如:

https://docs.google.com/document/d/18De5jl4VhDP8XU7g_UOO2PcZ5qiCCBg4S2B5FOzgLFA/edit?usp=sharing

其中的 18De5jl4VhDP8XU7g_UOO2PcZ5qiCCBg4S2B5FOzgLFA 即為 fileId.

接下來在 google developer console 新增一個專案, 啟用 Google Drive API 功能, 並建立 API key 即可透過以下 API 進行檔案內容存取:

https://www.googleapis.com/drive/v3/files/18De5jl4VhDP8XU7g_UOO2PcZ5qiCCBg4S2B5FOzgLFA/export?mimeType=text/plain&key=[your api key]

其中 fileId 即為該文檔的 fileId, 而 export 為讀取, 後面的 mimeType 可以有以下幾種:

(更多可以參考: https://developers.google.com/drive/v3/web/manage-downloads#downloading_google_documents)

而最後的 API key 則為在 Google Developer Console 專案內建立的 API Key, 就可以順利讀取內容, 以下則為一個簡單的範例:

http://sample.diary.tw/43/readdoc.php

程式碼如下:

$url = "https://www.googleapis.com/drive/v3/files/18De5jl4VhDP8XU7g_UOO2PcZ5qiCCBg4S2B5FOzgLFA/export?mimeType=text/plain&key=[your api key]";  
  
$data = file_get_contents($url);  
  
echo $data;

如此一來可以方便使用者上稿又能快速更新到前台, 十分方便.

Quota 的部分如下:

每日 10億次, 每 100秒每使用者 1000次, 每 100秒 1萬次, 三個計算基礎以下為免費.

 

 

台大G Suite for Education申請使用

太棒了, 終於出來了, 原在去年底有消息, 台大準備要和 Google 合作的 G Suite for Education , 在 4/26 公告可以進行申請了, 快去看看吧:

https://www.cc.ntu.edu.tw/chinese/spotlight/2016/a105038.asp

申請下來的帳號為: 學校帳號@g.ntu.edu.tw

也就是說, 原本若您的帳號為 [email protected] 則申請 G Suite for Education 則為 [email protected], 重點是有了一個超大的空間可以應用, 十分方便, 若為台大學生, 教職員與校友, 都可以申請, 真的是太棒了.

大家可以多多利用.

不是台大人, 還有其他學校的朋友, 可以參考:

[2021/12/15]

由於之前 google suite for education調整了使用權益, 各校總量只剩下 100TB, 所以對應的服務也都限縮了使用量, 以台大為例:

https://www.itc.ntnu.edu.tw/index.php/2021/02/23/2021-02-23google-workspace-for-education-storage-policy-changes/

目前是建議使用量於 30GB 以下, 其他學校應該也有對應的措施, 請有在使用的朋友們務必檢查並另尋存放或放置於自己的硬碟備份.

分類
程式技術

好用Google中文字體

製作網站時, 前端的中文字體真的是很傷腦筋, 又沒有那麼多的選擇, 又需要考慮使用者端是否有對應的字型. Google Font 計畫提供了許多字型可供應用, 也有不少繁體字型可供應用.

先來看看有哪些吧:

https://fonts.google.com/earlyaccess

上面是目前所有新增的 Google Font 的字體(非英文與拉丁文為主的), 我們可以用 Chinese 來查看看有哪些:

楷體 cwtexkai
圓體 cwtexyen
仿宋體 cwtexfangsong
Noto Sans TC notosanstc
明體 cwtexming
黑體 cwtexhei

這6種字體可供應用, 使用方式也很簡單, 直接使用對應的 CSS 即可, 以楷體為例, 可以看到他的 CSS 引入語法如下:

@import url(http://fonts.googleapis.com/earlyaccess/cwtexkai.css);

之後只需要在對應的 class 下 font-family 語法即可, 如下:

font-family: 'cwTeXKai', serif;

為方便一次檢視所有字體, 可以參考範例資料:

http://sample.diary.tw/42/index.htm

繼續閱讀:
http://www.ithome.com.tw/news/108941

分類
程式技術

Google Static Maps地圖實作

Google Static Maps地圖是用在取得地圖資訊時, 最輕量的使用方式, 之前文章: https://diary.tw/archives/1503 使用的 Google Maps Javascript API 需要引入 javascript library 進行程式操作, 在 Google Static Maps 則僅需要用到 img src 的方式取得圖片即可.

雖然只有圖片, 但是功能還是很強大, 而且應用在低階或網路環境不好的地方特別有用, 尤其是和地圖不互動的狀況下, 只是呈現結果的應用情境, 使用 Google Static Maps 是非常方便好用的.

Google Static Maps 資料可以參考官方網站:
https://developers.google.com/maps/documentation/static-maps/intro

記得一樣要先申請 Google API Key 來使用, 這裡用的就是 Google Static Maps API:

取得 API Key 之後, 就可以來應用了. 基本型如下:

https://maps.googleapis.com/maps/api/staticmap?parameters

其中 parameters 就是要繪製地圖的參數了, 以在地圖上某一地點畫一個座標為例,

https://maps.googleapis.com/maps/api/staticmap?center=25.052019,121.513987&zoom=15&size=320×240&language=zh-TW&maptype=roadmap&markers=color:red|label:A|25.052019,121.513987&key=[your api key]

其中 center 為地圖中心點, zoom 為放大層級, 以台北市為例, 15級或16級都OK, 看應用的狀況, size 為產出的圖片尺寸, 而 language 為地圖的語系, maptype 為地圖的格式, roadmap 為街道地圖(另有 satellite, terrain, hybrid), markers 為要標註的位置, 其中 color 為顏色, 用 | (pipe符號)區隔 marker 的參數, label 為單英數字標籤, 最後則是位置, 再來是最重要的 key 就是要輸入你的 api key, 效果如下:

這個地圖不能互動, 不過可以呈現所需要的資訊, 十分方便, 另外若是希望自訂 marker 的 icon, 可以將 markers 參數改為 icon:[url]|[position]的方式即可, 如下:

markers=icon:http://maps.google.com/mapfiles/kml/shapes/schools_maps.png|25.052019,121.513987

以上圖放到地圖中的效果如下:

另外, 若是想要畫出區域圖, 也可以用這個 Google Static Maps, 以之前文章 (https://diary.tw/archives/1503)為例, 座標點如下:
{lat: 25.0416515, lng:121.5437222},
{lat: 25.0333111, lng:121.543529},
{lat: 25.033116700000004, lng:121.5526271},
{lat: 25.036052399999996, lng:121.55267000000002},
{lat: 25.0374716, lng:121.55146840000002},
{lat: 25.038016, lng:121.5513396},
{lat: 25.0415348, lng:121.5474987},
{lat: 25.0416515, lng:121.5437222}

使用的參數就是 path, 語法如下,

path=pathStyles|pathLocation1|pathLocation2|… etc.

其中 pathStyles 有 wight, color, fillcolor, geodesic 4種參數, 其中 color 與 fillcolor 都是用 0xRRGGBBAA 其中 AA 由 00(不透明)到 FF(全透明) 這樣設定即可.

可以參考: https://developers.google.com/maps/documentation/static-maps/intro#Paths

產生的結果如下:

程式碼如下:
https://maps.googleapis.com/maps/api/staticmap?center=25.037789,121.547375&zoom=15&size=360×360&language=zh-TW&maptype=roadmap&path=color:0xFF0000|fillcolor:0xFF000033|25.0416515,121.5437222|25.0333111,121.543529|25.033116700000004,121.5526271|25.036052399999996,121.55267000000002|25.0374716,121.55146840000002|25.038016,121.5513396|25.0415348,121.5474987|25.0416515,121.5437222&key=[your api key]

十分好用, 但要注意不要超過 url 網址的長度上限, 參考舊文: https://diary.tw/archives/455, 在文件內說明也有, 不要超過 2048bytes: https://developers.google.com/maps/documentation/static-maps/intro#url-size-restriction

另外, 這組 API 每日免費上限為 25,000, 若要更多可以付費方式使用.

[2016/4/20 10:15]
補充一下自訂 marker 的部分, 必須是用 http 而非 https 的方式, 否則將無法正常輸出該自訂 marker, 參考資料:
http://stackoverflow.com/questions/12324996/custom-marker-icon-not-showing-google-static-maps-v2

分類
好用軟體

使用Google Spreadsheets進行自動翻譯

在開發軟體時, 若有多國語系的需求時, 可以請人翻譯, 當然也可以請 Google 翻譯, 不過一則一則翻譯太慢以外, 也不夠系統化, 有沒有更快速的方式呢? 有的, 可以使用 Google spreadsheets進行自動翻譯.

熟悉 excel 的朋友們, 應該不難理解使用公式來計算小計, 加總, 統計等功能, 在 Google spreadsheets 中, 有個 GOOGLETRANSLATE 函數, 可以用來做”計算”翻譯的結果, 使用方式如下:

GoogleTranslate(文字, 來源語言,目標語言)

所以若是要做自動翻譯也就容易了, 如以下畫面的設計:

其中的B2翻譯內容公式為:

=GOOGLETRANSLATE($A3,”zh-tw”,B$2)

其他B2:E9就只是複製這個公式就可以得到結果了. 範例檔案可以參考這個線上連結:

https://goo.gl/bejxJP

如何發揮更多功能, 看你的巧思了.

其中支援語言與代碼參考這裡:

https://cloud.google.com/translate/v2/using_rest#language-params

繼續閱讀:
http://www.playpcesor.com/2015/12/google-excel-translate.html

有趣的Google Vision API

什麼是 Google Vision API, 先來看看影片吧:

(影片引用自: https://www.youtube.com/watch?v=eve8DkkVdhI)

功能是用 Google 的 Cloud API 來進行視覺辨識的功能, 影片中使用了 GoPiGo (http://www.dexterindustries.com/gopigo/) 來進行影像視覺辨識, 十分有趣而實用的功能, 好厲害呢.

這樣未來的應用就愈來愈多可能了.

繼續閱讀:

付費空間無上限-Amazon CloudDrive

個人用雲端空間, 大家都很熟悉了.

像是 Dropbox, Google Drive, OneDrive, Box, Mega, Copy 等, 相信大家都不陌生, 不過有個挑戰者來了, Amazon CloudDrive.

先來看看各家方案:
Dropbox: https://www.dropbox.com/plans
免費 2GB/每月USD9.99 1000GB

Google Drive:
免費 15GB/每月USD1.99 100GB/每月USD9.99 1TB

OneDrive: https://onedrive.live.com/about/zh-tw/plans/
免費 15GB/每月NTD60 100GB/每月NTD219 1TB

Box: https://www.box.com/pricing/
免費 10GB/每月USD10 100GB

Mega: http://mega.and1.tw/zh_tw/
免費 50GB/每月NTD399 500GB/每月NTD799 2TB/每月NTD1199 4TB

Copy: https://www.copy.com/page/home;section:plans
免費 15GB/每月USD4.99 250GB/每月USD9.99 1TB

再來就是有趣的 Amazon CloudDrive: https://www.amazon.com/clouddrive/home
沒有免費/每年USD11.99 5GB+Photo無限/每年USD59.99 無限

真的是很破壞性的價格, 當然還有大陸的許多空間沒有列入, 不過以上面個人使用的狀況來看, Dropbox 和 Google Drive 、One Drive、Box都有方便的同步工具, 而目前 Amazon Cloud Drive 僅有上傳工具, 目前尚沒有好用的同步工具.

但就價格來看, 真的是很破壞性的價格, 但使用在工作上, 似乎又不是那麼便利.

若是後面它能有更棒的同步工具, 相信會有另一番競爭力.

繼續閱讀:
http://www.bnext.com.tw/article/view/id/35767

分類
程式技術

如何取得Google Plus的user avatar(大頭圖)

繼上次 facebook 取得大頭圖 (link)後, 這次來說明取得 Google Plus大頭圖的方式.

需要先取得一個 Google Plus API 的 key (目前共有4種, server、browser、android、ios), 依實際需求來使用, 若要方便測試, 可以建立 server api key, 並設限 ip 0.0.0.0/0 全開放, 或是 browser api key 並設限為不限網域全開放.

接下來我們將使用的 Google Plus Api 是這個: plus.people.get, 參考以下網址:
http://developers.google.com/apis-explorer/?hl=zh_TW#p/plus/v1/plus.people.get

由於我們要取得大頭圖, 所以 fields 是使用 image, 可以獲得 api 存取需要以下網址:
https://www.googleapis.com/plus/v1/people/{user_google_plus_id}?fields=image&key={YOUR_API_KEY}

接下來訪問這個 url:
https://www.googleapis.com/plus/v1/people/106189723444098348646?fields=image&key={YOUR_API_KEY}

就可以取得如下回應:

{
 "image": {
  "url": "https://lh3.googleusercontent.com/-Y86IN-vEObo/AAAAAAAAAAI/AAAAAAADO1I/QzjOGHq5kNQ/photo.jpg?sz=50",
  "isDefault": false
 }
}

這個大頭圖的 url 就會出現囉. 大家猜一下是哪位呢?

參考資料:
http://stackoverflow.com/questions/17962759/is-it-possible-to-create-an-avatar-profile-picture-link-from-a-google-id
https://developers.google.com/+/api/oauth?hl=zh-tw

Google QRCode Chart API

使用 Google Chart API 來產生 QRCode 很方便, 可以參考這裡的資料:
https://developers.google.com/chart/infographics/docs/qr_codes

一般來說會用到的參數共有以下:

  1. cht=qr
  2. chs=[width]x[height] (產生的長寬)
  3. chl=[data] (要產生的內容, 可以放文字或網址等資訊)

所以以本站網址為例, QRCode 為:
http://chart.apis.google.com/chart?cht=qr&chs=200×200&chl=http%3A//diary.tw/tim

以圖片顯示為:

Google Chart API 產生 QR Code還真的蠻方便的.

[2014/8/27]
補充, 若是需要大量產生, 可以利用這個網站服務, 一次可以免費批次產生100個QRCode, 也十分方便好用.
http://www.qrexplore.com/generate/

另外也有個線上辨識Barcode、QRCode的服務, 可以用圖片網址或是傳送圖片的方式進行, 方便大家在產生QRCode的驗證.
http://zxing.org/w/decode.jspx