顯示具有 Google 標籤的文章。 顯示所有文章
顯示具有 Google 標籤的文章。 顯示所有文章

2021-08-20

Google Sheet API v3 升 v4

之前用這個網址格式取得 JSON 格式 Google Sheet 資料,一直相安無事:

https://spreadsheets.google.com/feeds/list/SHEET_ID/TAB_INDEX/public/values?alt=json

然後大概從 2021/8/15 開始,就有機率讀取不成功(對,有時候會成功 🙈),有的時候是炸 CORS 問題、有的時候是炸 404。

狗了一下的結果,應該就是 Google Sheet API v3 在 2021/8/2 停用所導致的。至於 v3 版跟應該還會繼續活著的 GData 有什麼關係、為什麼是「有機率掛掉」就… 不研究… [蓋牌][翻白眼]

經過幾天的摸索,如果只是單純要取得 JSON,那麼會遇到下面這幾件事情。

首先要去 Google Cloud Platform 搞一個 API 金鑰(以下簡稱 API_KEY)。如果之前沒有用過可能還要先開一個(看起來毫無意義的)專案然後才能產生… 😱

有了 API 金鑰之後,接下來是把網址改成這個格式:

https://sheets.googleapis.com/v4/spreadsheets/SHEET_ID/values/RANGE&key=API_KEY

這邊不再是用「第幾個工作表」(或是那個根本不知道怎麼來的 id 值)的方式,而是指定 RANGE。完整版的 RANGE 大概是「FOO!A1:D100」的長相,這表示要求「FOO」這個工作表的 A1~D100 這個 cell 範圍的資料。

實測之後(找不到文件… 🙈)發現允許下列幾種變形:

  • FOO:可以省略 cell 範圍。如此會回傳整個 FOO 的資料
  • A1:D100:可以省略工作表名稱。如此會回傳第一個工作表的指定 cell 範圍的資料

回傳的 JSON 也跟以前不一樣,v4 版變得很純:

{
  "range": "'FOO'!A1:D100",
  "majorDimension": "ROWS",
  "values": [
    ["ColumnA", "欄位B", "ColumnC", "欄位D"],
    ["第一筆A", "第一筆B", "第一筆C", "第一筆D"],
    [],
    ["", "第三筆B"]
}
  • v3 會把 sheet 的第一個 row 的值當成 JSON 的 key 值;v4 純粹就是給你一個二維字串陣列。(反正都能指定範圍了)
  • v3 遇到第一個空白 row 就會視為後面沒有資料停止輸出;v4 會在指定範圍內確定是否以下空白才停止輸出,其中夾雜的空白行會給一個空陣列。
  • 如果該 row 第 n 個 column 之後都沒有值,則該 row 對應的陣列長度只到 n - 1。1~n - 1 當中如果有 column 沒有值,會給空字串。

一樣是實測結果(還是找不到文件… 🙈),下列狀況會導致 server 給不是 200 的 HTTP status code:

  • 400:range 無法正常解析
  • 403:API_KEY 值不正確
  • 404:SHEET_ID 值不正確

最後,用 v4 版,sheet 可以不用做「發布到網路」這一個動作。

2013-04-09

Google 開始 Blink

最近一個可能不會太熱門的話題是 Google Chrome 開始搞自己的 browser rendering engine。還不知道的人可以看一下這幾個 reference:
我想在今年年初 Opera 宣佈改用 WebKit 的時候,應該有不少搞網頁前端的人鬆了一口氣。雖然不可能完全不用測試就保證一定正常,但是至少炸掉的機率小了很多。結果隔了兩個月左右,Google 宣佈開始搞 Blink,然後 Opera 也會跟著跳槽。

2011-09-04

整合 GMail 帳號

我有四個常用的 GMail 帳號。

當然,GMail 早就不是邀請制了,甚至自己弄個 Google Apps,要有幾個帳號都不是問題。事實上,因為 Google 的 service 用得有點兇,從 GMail、Blogger、Reader、Sites、WebMaster、譯者工具包還有賺錢用的 AdSense,我還寧願只用一個帳號就滿足全部需要。

大多數的 service 的確可以做到,像 Blogger 這種寫作類的 service 都有提供其他作者協同寫作的功能、Reader 用匯入匯出的功能解決,剩下的 WebMaster 跟 AdSense 偶爾上去看一看(似乎也能開放給其他帳號,沒細究),倒也還過得去。

不過 GMail 就沒這麼簡單了,總不能用公司的帳號收信、卻用私人的帳號回信吧?所以之前的作法是同時開 Chrome 跟 Firefox,搭配無痕/私密瀏覽來解決......

實在有夠土砲的...... Orz

後來經高人指點,發現 GMail 早就想到這點了,還提供了兩個招數......

萬用基本招:POP + Send mail as
GMail 裡頭要把 A 帳號的信都轉到 B 帳號有兩種方法。第一種是選擇轉寄(Forwarding)、第二種是透過 POP3 取得信件。這裡建議是用 POP3 的方式,步驟如下:
  • 進入 A 帳號,將「POP 下載(POP Download)」的功能開啟。
  • 進入 B 帳號,在「從其他帳戶取得郵件(check mail using POP3)」新增一個帳號。這裡要注意一點,如果 A 帳號不是 xxx@gmail.com,而是由 Google Apps 提供的,記得在「使用者名稱」輸入完整的 email 帳號。另外 POP 伺服器就輸入「pop.gmail.com」、通訊埠選擇「995」
設定完成後,系統就會開始到 A 帳號檢查有無信件,有的話會抓回來並掛上對應(可設定)的標籤。

如果 Google 只做到這邊,那也不過就是功能稍微強一點 web 版的郵件軟體。重點在於「Send mail as」的功能,這功能在設定完「POP 下載」應該就會出現,也可以獨立設定。這是幹什麼的呢?它可以讓你用 B 帳號登入寄信,但是收信人看到的寄信者卻是 A 帳號。

如此,透過 POP 將另一個帳號的信彙整進來、寄信的時候可以用指定的帳號寄出去,事情解決了,萬歲! \囧/

萬能大絕招:Grant access to your account
萬用基本招雖然解決了,可是總覺得還是哪裡不滿足。最根本的問題是通訊錄:A 帳號的通訊錄得透過匯入匯出的方式才能帶到 B 帳號(雖然說回信之後會自動建立通訊錄),而且很容易就會變成公私不分的大雜燴。再者就是信件得依賴標籤的功能來區分,看/找起來並不是那麼快樂。有沒有更簡單的方式呢?

當然有!

在 A 帳號的「授權這些使用者存取我的帳戶(Grant access to your account)」增加 B 帳號的資訊,過一段時間(號稱半個小時)之後重新登入 B 帳號,就可以點選畫面右上角顯示帳號的地方,選擇「切換帳號」會出現 A 帳號,再點下去會另外開一個視窗...... YES! 直接變成 A 帳號登入的畫面了!

是的,除了沒有 Buzz、Chat、Calendar 這些 mail 以外的功能,其餘畫面操作跟 A 帳號登入時一模一樣。A、B 帳號可以同時掛在同一個瀏覽器底下,而且不用知道/輸入 A 帳號的密碼。另外,要同時代管幾個帳號也都不是問題、完全不會混亂。

不過這招有個限制,就是 A、B 兩個帳號的 domain name 必須是一樣的,foo@gmail.com 跟 mail@foo.com 是無法這樣設定的。

心得感想
不管是從哪個角度來看,都是感觸良多。

從軟體開發的角度,只能說自嘆不如。當然,上頭說得這些功能並不需要什麼高深的技術或演算法,問題在於細節很多:得同時兼顧方便性與安全性、還不能造成使用上的混亂與衝突,如果連版本演進的功夫一起算下去,Google 在軟體架構設計上真的是很可怕...... Orz

從評論軟體的角度,只能說,Google 始終展現了「不怕你用」的恢宏氣度。在那個 Hotmail、Yahoo 信箱免費空間大小了不起 50、100MB,GMail 直接給 1GB 的容量、一年後變成 2GB,然後玩起「空間隨著時間慢慢增加」的噱頭,到現在 7.xGB 還在持續增長中。我有點好奇誰能在正常使用下塞滿它......

Google 也不怕你開多個帳號佔據它的資源,不但不怕,還提供了許多功能方便讓你管理眾分身。我是已經很久沒用其他 mail service 了,不知道有哪家有做到如此程度?

從另一個角度來看,Google 的功能大多悄悄無聲無息地出現,像「POP3 下載」這功能,在開放時網路上有喧囂一陣,所以還有點印象。但是這篇提到的其他功能,就根本也不知道啥時候冒出來的,更不用講 GMail 裡頭 LAB 那一卡車的東西了。

不知道這些功能,使用上也沒啥大妨礙;多了這些功能,你也不會覺得被妨礙。

又不免吐槽一下 M$,M$ 常常怕使用者不知道他做了多少改變,問題是改變之後反而不知道要怎麼用了,想回頭用舊的版本還不行(最近才遇到 Windows 2000 安裝 Skype 5.x 版會死翹翹,還好網路上還有 4.x 的免安裝版可以用 [怒]),說明文件又爛得要命,難怪 M$ 連 Office 都可以推證照制度...... Orz

最後說回行銷面,我想這篇就是受到 Google 行銷手法(個人覺得不算行銷,但是人家科班出身的都這樣講了.....)影響下的產物:

  • 「這是啥功能...... =="」 or 「最近有一批功能好便宜 [誤]」
  • 哇靠!這他 x 的超好用的啦...
  • 什麼,你居然不知道? 好好好,我教你......
於是乎,推銷員有了、教育人員有了、甚至連文件撰寫人員也有了(雖然 Google 本身的文件、即使是中文版的也不差)。Google 沒有想一次就改變全世界,甚至可能根本沒有想改變全世界,比較像是「我需要用這個,你要用也歡迎」。但是,世界改變了......

「如何吃下一頭大象?」「一次吃一口」

嗯... 還有很長的路要走...... [遠目]

2010-02-18

Buzz?Buts?Bugs? Bums?

Buzz
前些日子,要進 GMail 的時候會跳一個「要不要加入 Buzz 功能」的畫面。Google 正式推出的東西,當然是會想要用用看的。於是,一個早上就栽進去了,除了跟也在摸 Buzz 的人哈拉打屁之外,比較多的時間是在 try 功能與設定......
好東西啊 (y)
很多東西說穿了,其實就是留言板,blog 是個人留言板、Plurk 是多了 timeline 展現方式的個人留言板。Plurk 跟傳統留言板的差別,只在於你知道誰有訂閱你的看板,如此而已。Buzz 大致也依循這個基礎,基本功能就是讓你可以 blahblah 一些有的沒的,然後別人可以在這個主題下回應 comment。如果 Buzz 就只有這樣,除了跟 GMail 整合在一起(有新 Buzz 會有信件通知、可以直接在信件當中增加 comment)、沒有字數限制之外,根本不會覺得它是好東西、也不會想要用(我只用 Plurk 就覺得夠浪費時間啦~ [慘笑])

重點在於整合。Buzz 有一個「connected sites」的設定,可以連接 Google 指定的網站,例如Google Reader、Blogspot(其他沒用過就跳過 XD)。在 Google Reader 對某個 item 設定「分享」,那麼這個 item 就會變成一個 buzz;同理,在 Blogspot 發表新文章時,文章內容也會自動變成一個 buzz。當然,可以直接在 Buzz 的介面看完整內容,也可以回應 comment。

我想,Buzz 的目標就是彙整使用者在 Google 系列產品所產生的資訊,並加以流通。

在 Blogspot 上寫了一篇文章,得手動(至少得自己按個按鈕)轉到 Plurk 上頭才能提醒朋友們去點開來看,Buzz 直接強迫你看 [大笑],還不用在視窗 or tab 之間切換。萬一某個 buzz 導致要私下單挑,轉戰 chat(GTalk)或是 email 的按鈕也都幫你傳便便,而且後續的動作不用在視窗 or tab 之間切換

Buzz 讓平常已經會停留很久的 GMail 變得更久——或著這麼說,如果你的朋友們都是 Google 愛用者(soon or later? :P),那 GMail 或許可以涵蓋所有的溝通需求,因為——還是那句老話——不用在視窗 or tab 之間切換(當然,我不否認,其實我比較喜歡用 Alt+Tab 切換視窗比較快,用滑鼠點來點去實在是很慢.... Orz)。

反過來說,Buzz 又加重了「專一帳號」 的力度。像我自己有兩個 Google 帳號,一個是 PsMonkey(本名?)、另一個是 PT2Club(工作用)。因為工作上的信件往來比較多,導致後來幾乎都用 PT2Club 這個帳號來用 Doc、Reader、譯者工具包、webmaster 等服務。那些也都還好,畢竟各自獨立。但是 Buzz 的出現,就讓我開始猶豫我到底要用哪一個帳號?聊天打屁事小,至少 blog 的文章要能夠自動張貼啊...... 後來解決方法是我的 blog 們現在都有兩個作者 XDXD。

Buts
雖然個人覺得實在是個好東西,不過網路上抨擊 Buzz 的也不少。主要攻擊點在於隱私權政策。這(據說)是因為一開始使用 Buzz 時,它會預設把很多資訊都公開:例如你的某些聯絡人(尤其是在 Google Reader 就有 follow 的)會自動加入成 follower→而 follower 的清單可以在 profile 上頭看到→profile 預設公開...... 如此之類的問題。隱私權的問題我始終...... 搞不太懂,就跳過 XD。

另外,也有這種聲音
忙碌的人不需要另一個社交網絡,他們需要的是一個方便的整合,我們已經做了。Hotmail 用戶自 2008 年起已享受到微軟與 Flickr、 facebook、Twitter 及另外 75 個伙伴合作所帶來的益處。
為此我還特地登入半個月才上去一次的 www.hotmail.com,奇怪... 就跟過去一年多的印象一樣——沒有啊?難道登入之後下面的「好友動向」就是上面說的東西?平常只會看到誰又改了暱稱或是換了照片啊?好吧,就算是好了,那我要怎麼增加新的資訊?至少 blog 的新文章要能掛進去吧?難道一定要跳到 Windows Live 的首頁? (中略數分鐘)還真的是在 Windows Live 的首頁找到了,叫做「新增網路活動」,這需要一點聯想才能從「好友動向」想到這來。而這幾個字有多麼顯眼呢?為了怕大家找不到,我用紅框圈起來了。
點進去則是洋洋灑灑、二字排開、完全沒有分類的項目。有趣的事情來了... M$ 自己提供的 blog service 在裡頭找不到,得在「個人檔案」裡頭的「好友動向」下面的「選項」才有辦法設定(字一樣小,還會跟另一個也叫「選項」的搞混)。因為那被歸類在「Windows Live」裡頭,跟「網路活動」是分開的...... 至於這玩意到底方不方便、好不好用,我就不知道了....... 因為才弄到這裡 我 就 快 抓 狂 啦... 沒有用 AJAX、排版又花又亂、功能提示不清... 啊啊啊啊... <囧>。M$ 的場面話說 2008 年就有這個功能,我很好奇到底有多少人真正在用?上頭有多少資訊在流通(尤其是撇開 MSN 暱稱與圖片 update 資訊)?

說真的,有時候不是「Google 就是好」、也不是「逢 M$ 必反」,而是無論以使用者經驗來給分、以技術面來評估、或是以行銷手段來衡量,孰好孰壞,一望便知。

Bugs
這幾天用下來,其實現階段的 bug——嚴格來講是功能缺失點——還頗嚴重。

最大條也最明顯的是「未讀」的數字始終不太對。常常有新的 buzz 但是數字卻沒出來,或是有出現數字但是點進去卻沒發現有沒讀過的 buzz。這實在是蠻令人生氣(失望)的一個缺點。如果我得要點進去 Buzz、肉眼掃描才能知道有沒有新東西要看......
那我幹麼還用 Buzz 啊啊啊啊....... [翻桌]
另外一個功能缺失點,是在單個 buzz 的 comment 太多時,系統會自動幫你隱藏中間的 comment,只留下第一個跟最後兩個。問題是,可能這個 buzz 最後五筆 comment 都沒看過,就還得全部顯示之後用肉眼掃描......
那我幹麼還用 Buzz 啊啊啊啊....... [翻桌]
至於「別人回覆 comment 會自動寄信到 mail 當中通知」,我覺得這設計的很粗糙且囉唆(弄好 Buzz 的未讀機制,或是開放 API 還比較實在),還好 GMail 本身有 filter 的功能。其他還有 connected site 在顯示 blog 名稱會錯亂、connected site 的來源種類很少、comment 似乎沒辦法擺圖、Insert Link 在刪除 link 之後不會再出現...... etc

總結來說,Buzz 目前是堪用而不太好用。以 Google 的以往的標準來說,實在是不及格(想當年 GMail 出來的時候,我簡直感動得要落淚啊...)。

這給了我一些想像的空間...

Bums
Google 在泛稱 social network 的部份,似乎沒有做的很成功。GTalk 出來太晚,文字訊息打不過 MSN 跟 Yahoo 即時通、聲音影像又搶不了 Skype(當然,micro blog 某種程度導致標準的 IM 沒落)。很早之前有 Orkut,但是好像沒有推起來,至少沒有變成 Facebook。Blogspot 顯示追蹤訂閱的功能應該沒有出來很久(不太確定)......... 如果上述沒有觀察錯誤,那也就是說,Google 手上幾乎沒有「人跟人之間關係」的資料...... 除了不能說的 GMail [奸笑](是說 email 也不太好 mining... 畢竟正常的 mail 都是一對一),還有不太有用的 Google Group 跟... Google Codes? [大笑]

social network 的 service 會徹底遵守西瓜效應。當你身邊的人都在噗來噗去的時候,即使你不趕流行、你身邊的人也會逼你用——不然我怎麼聯絡你啊? or 你一直 lag 我們在講什麼你都聽不懂。雖然使用者的需求是否滿足很重要(所以我壓根不會去用 Facebook),但是常常扮演關鍵的是「誰比較快」。畢竟網路上沒有春夏秋冬,只要種子沒有太差,早播種通常就是早收成。M$ 主管的說詞並沒有錯「忙碌的人不需要另一個社交網絡」,Twitter、Facebook(以很多 service)都有開放的 API 可以連,也就是說,有心要整合都不是問題。如果我已經用了這一個,那為甚麼我要去用另一個呢(一如我到現在還是很死忠 BBS [大笑])?

如果以這點來看 Google Buzz,或許可以代表 Google 也急了、急到連平常應有的水準都沒有就推出來正式上線了。Wave 雖然複雜到不知道該怎麼用,算是失敗,至少它先進且(理論上)完整。Buzz,坦白說,對 Google 開始失望。

如果 Google 未來會崩壞,我會以 Buzz 作為一個轉折點。這也是為甚麼寫這篇的原因,紀錄有過這麼一件事。

2010-01-09

喵的,Google 譯者工具包... <囧>

先來個廣告:堪稱 GWT 2.0 當中最重要新功能:UiBinder,官方文件已經翻譯完畢啦!歡迎到 http://gwt-note.psmonkey.org/official/buildUI/With-UiBinder 參觀選購...我是說批評指教..... \囧/

ㄜ? 廣告跟內容有什麼關係呢?因為敝人英文超爛(高中英文從來沒有及格過 \囧/),所以常常仰賴 Google 翻譯來作初步的斷句、有時候比較口語化 or 片語的解讀也頗好用。然後昨天,就在 UiBinder 快要翻譯完的時候,我瞄到 Google 翻譯旁邊有一個連結:「譯者工具包

點進去、用了三分鐘之後.......
救命阿~ 投降能不能輸一半阿阿阿阿...... Orz

當然,我不是專業的翻譯者,翻譯只是我面對外文書的扎實學習方式。只是面對這樣子的工具軟體,很難不大喊「這就是我要的功能阿!」
  • 原文與自動翻譯的譯文並列、同步捲軸
  • 保留原始格式(雖然說這對我來講不太重要 XD)
  • 以句子為單位編輯,原文高亮度顯示
  • 快速鍵、手指幾乎不用離開鍵盤
  • 含字典、翻譯搜尋結果的工具包
  • 可以編輯 or 評論的共用功能
  • 翻譯進度評比
  • 翻譯字彙庫、詞彙庫功能(還不知道要怎麼用 XD)
翻譯的時候都要開三個視窗(一個原文、一個譯文、一個電子字典,後來進化成兩個),在來回對照到眼花撩亂的時候,為甚麼我沒有想過「要是有這樣的軟體該有多好」?

「譯者工具包」的核心技術當然是 Google 翻譯,然後加上 Google Doc 的功能,再作一些補強就差不多了(以 Google 的技術能力而言 :P)。可是我卻從來沒這樣想過,坦白講,以一個技術人員來說,還蠻羞恥的......
摻在一起作撒尿牛丸阿!笨蛋!

當然,我的羞恥每天都有 \囧/,會讓我想要投降的是這張圖......



==" 請不要把焦點放在「我是豬頭」那句話,而是最下面的「建議更好的譯法」。Google 翻譯一直有提供這樣的功能,當你對程式翻譯出來的東西不滿意時,可以 以自己認為良好的譯文作 feedback。不過,你知道、我知道、獨眼龍也知道......
鬼才會特地去寫建議..... [炸]

又或是換個角度講:
都用 Google 翻譯來解讀原文了,這種人建議的翻譯結果,你敢參考嗎? [核爆]

可是我又希望拿到免費、廣泛來源的 feedback 資料,而且資料的正確性也有一定的可靠度...... hmmm... 決定就是你了!去吧!Google 譯者工具包!

譯者工具包,拆穿了,不過就是把「建議更好的譯法」包裝起來......

但是!

你能有一個不錯的軟體來製作翻譯成品、我可以拿到認真撰寫的原文→譯文資料。Great!讓我們一起邁向美好的未來吧! [撒花]

以我的不負責任解讀,Google 一直靠著這樣子的「互利」角度去推出新的「產品」,GMail、AdSense、Analytics、Google News... 是為了 feedback 回 search engine,而 search engine 又 support 了 AdWord 這個真正負責賺錢的東東。說真的,這叫我怎能不折服...... Orz

[小聲] 嗯... 我還有幾個點子,希望 Google 不要發現......