Google API & VS.NET C# @2013 - 05

接續【 Google API & VS.NET C# @2013 – 04 】之後,讓我們一起學習如何將一個影音檔案上傳到 YouTube 裡。

 

程式中的運作細節,主要牽涉到兩個關鍵議題:

  1. 使用 YouTube APIs 功能,該如何在 Project 中加入 Reference:NuGet Packages
    (可參考:Google API & VS.NET C# @2013 – 01 一文)
  2. 如何在 Google Developers Console ,建立好程式中會使用到的 OAuth 2.0 認證資料,並儲存成 client_secrets.json 檔案。
    (可參考:Google API & VS.NET C# @2013 – 03 一文)


另外,需注意的是 client_secrets.json 檔案要存放在 *.exe 的相同目錄之下。( Exp - D:\CreatePlaylist\CreatePlaylist\bin\Release )
當然,讀者對 VS.NET、C# 的使用,要有一定基本的知識。

本文將會附上範例程式【點選下載】,
讀者只要處理好關鍵議題2(建置 client_secrets.json 檔案),即可讓程式正常運作。

若是,讀者想自行建置專案,來測試程式的運作,在 NuGet Packages 的處理中,需要搜尋
Google.Apis.YouTube.v3
Google.Apis.Discovery
,並 Install 即可。


client_secrets.json 檔案的內容、格式如下:

{
    "installed":{
        "auth_uri":"https://accounts.google.com/o/oauth2/auth",
        "client_secret":"***************",
        "token_uri":"https://accounts.google.com/o/oauth2/token",
        "client_email":"",
        "redirect_uris":["urn:ietf:wg:oauth:2.0:oob","oob"],
        "client_x509_cert_url":"",
        "client_id":"***************************.apps.googleusercontent.com",
        "auth_provider_x509_cert_url":"https://www.googleapis.com/oauth2/v1/certs"
    }
}

檔案資料中的 client_id、client_secret ,請讀者自行修改成自己的 OAuth 2.0 認證資料。

範例程式:UploadVideo
                  將一個影音檔案上傳到 YouTube 中。

 

程式運行過程,會顯示下列訊息:

YouTube Data API: Upload Video
==============================
10485760 bytes sent.
20971520 bytes sent.
31457280 bytes sent.
41943040 bytes sent.
52428800 bytes sent.
62914560 bytes sent.
73400320 bytes sent.
Video id 'lD2S412qiyU' was successfully uploaded.
Press any key to continue...


lD2S412qiyU 就是被上傳的影音檔案代號。

我們可以用

  1. http://www.youtube.com/watch?v=影音檔案代號
  2. http://youtu.be/影音檔案代號 

來檢驗。

Google API & VS.NET C# @2013 – 03

在 Google API & VS.NET C# @2013 系列介紹文章中,本章將會是最重要的關鍵!

它主要在介紹如何產生 OAuth 2.0 的認證檔案,與過程中一些處理事項的概念說明。
至於 OAuth 2.0 的運作架構與理論,請讀者資料參考其他文件資料。


Google API & VS.NET C# @2013 – 02 中,有提及到

★設定

    在你使用 Google APIs 之前,需要完全下列事項:

  1. 需要有 Google 帳號。沒有者,請先註冊
  2. 需要有管理 Google Project 的經驗;諸如,建置 Project、管理 Project 等經驗。沒有者,請先連接到 Google Developers Console
  3. 要將 NuGet packages 安裝在你開發的程式專案中。(Google API & VS.NET C# @2013 – 01 一文,已提及相關操作細節。)


當你已經擁有 Google 帳號後,就可以 連接到 Google Developers Console
PS:Google Developers Console 目前有新、舊版本網頁的區別,所以產生 OAuth 2.0 認證的步驟,也就不同。本文以新版為主。
        舊版網址:https://code.google.com/apis/console/b/0/?noredirect#project:××××××××××××:overview
                           ×××××××××××× 表示要設定 OAuth 2.0 認證的 Project No (專案編號)

連線到 Google Developers Console,主要的工作就是管理專案。若有需要,也可以建置新的專案。

image


每個專案都會有 專案名稱專案ID專案編號

當你在匯總畫面中,點選你要處理的專案項目後,就會進入該專案的細部資料網頁。

image


接下來,我們直接點選左側的 憑證。
可以看到有兩種憑證種類:OAuth 2.0, 公開API存取。
image   image


OAuth 2.0 有可分成三種:網路應用程式、服務帳戶、已安裝的應用程式。

image


因為,我們是用 VS.NET環境來開發 Console Application,所以要選用已安裝的應用程式

上述三種 OAuth 2.0 類型的認證資料,產生的內容也會不同不同!
請記得 點選有 JSON 字樣的按鈕,以便產生認證資料檔案 client_secrets.json


以下圖示分別展示出三種應用程式類型,產生認證資料檔案 client_secrets.json的過程。

一、網路應用程式

image


二、服務帳戶

image


三、已安裝的應用程式

image


PS:三種不同類型的 OAuth 2.0 認證檔案,可以在該檔案內容中找到相對的關係字元
  • 網路應用程式:"web"
  • 服務帳戶:"type": "service_account"
  • 已安裝的應用程式:"installed"

Google API & VS.NET C# @2013 - 04

本文將提到如何在 YouTube 環境中,建立一個新的播放清單,並指定一個事先已上傳到 YouTube 影片,歸類給該播放清單。

程式中的運作細節,主要牽涉到兩個關鍵議題:

  1. 使用 YouTube APIs 功能,該如何在 Project 中加入 Reference:NuGet Packages
    (可參考:Google API & VS.NET C# @2013 – 01 一文)
  2. 如何在 Google Developers Console ,建立好程式中會使用到的 OAuth 2.0 認證資料,並儲存成 client_secrets.json 檔案。
    (可參考:Google API & VS.NET C# @2013 – 03文)


另外,需注意的是 client_secrets.json 檔案要存放在 *.exe 的相同目錄之下。( Exp - D:\CreatePlaylist\CreatePlaylist\bin\Release )
當然,讀者對 VS.NET、C# 的使用,就需要有一定的基本使用常識。

本文將會附上範例程式【點選下載】,
讀者只要處理好關鍵議題2(建置 client_secrets.json 檔案),即可讓程式正常運作。

若是,讀者想自行建置專案,來測試程式的運作,在 NuGet Packages 的處理中,只要搜尋 Google.Apis.YouTube.v3,並 Install 即可。


client_secrets.json 檔案的內容、格式如下:

{
    "installed":{
        "auth_uri":"https://accounts.google.com/o/oauth2/auth",
        "client_secret":"***************",
        "token_uri":"https://accounts.google.com/o/oauth2/token",
        "client_email":"",
        "redirect_uris":["urn:ietf:wg:oauth:2.0:oob","oob"],
        "client_x509_cert_url":"",
        "client_id":"***************************.apps.googleusercontent.com",
        "auth_provider_x509_cert_url":"https://www.googleapis.com/oauth2/v1/certs"
    }
}

檔案資料中的 client_id、client_secret ,請讀者自行修改成自己的 OAuth 2.0 認證資料。

範例程式:CreatePlaylist
                  建立一個新的播放清單,並指定一個事先已上傳到 YouTube 影片,歸類給該新建的播放清單。

以下是程式運行時,產生的畫面圖示。

★筆者因為有多個帳號,所以認證時出現 需選取帳號 的畫面。

image


★授權提示畫面

image


★操作結果

image

程式碼 newPlaylistItem.Snippet.ResourceId.VideoId = "GNRMeaz6QRI";

GNRMeaz6QRI 是一個事先已上傳到 YouTube 影片,你可以藉由 youtu.be/GNRMeaz6QRI 觀看到該影片內容。

而操作訊息中 PLsNJO0nl_IhQU-3qQ0qxClYkOIwjnCg10,就是新產生的播放清單代號。
你可以藉由 https://www.youtube.com/playlist?list=PLsNJO0nl_IhQU-3qQ0qxClYkOIwjnCg10 觀看其效果。

image

Google API & VS.NET C# @2013 - 02

之前 Google API & VS.NET C# @2013 – 01 一文,介紹使用 Discovery.ListAPIs 功能的範例,好誇入 Google API 的殿堂之門。

希望,經由逐步的操作,讓讀者還在不清楚 Google APIs 的整個運作架構下,就可以看到它的功效。

接下來,就來介紹 Google APIs 的簡易入門:Google APIs Client Library for .NET - Getting Started

( 建議讀者也一併參考 Google APIs Client Library for .NET )

該文章中提到幾個主要項目:

  1. Setup 設定
  2. Authentication and authorization 認證與授權
  3. Examples 範例演示
  4. Finding information about the APIs 尋找 APIs 的相關資訊


★設定

    在你使用 Google APIs 之前,需要完全下列事項:

  1. 需要有 Google 帳號。沒有者,請先註冊
  2. 需要有管理 Google Project 的經驗;諸如,建置 Project、管理 Project 等經驗。沒有者,請先連接到 Google Developers Console
  3. 要將 NuGet packages 安裝在你開發的程式專案中。(Google API & VS.NET C# @2013 – 01 一文,已提及相關操作細節。)


★認證與授權

    這方面共有兩類:

  • Simple API access (API keys)
    這類型的API調用,是無法訪問任何用戶的私人數據。應用程式主要是對自身進行驗證,以確認該程式為你的 Google Developers Console 的應用程式。
  • Authorized API access (OAuth 2.0)
    這類型的API調用,就會調用到一些用戶的私人數據。
    首先,應用程式必須先進行身份認證,而且用戶也必須授權你的應用程序可以訪問他的私人數據。而所有這一切需求,都是藉由 OAuth 2.0 來完成。
    • Scope:只讀、讀與寫
    • Refresh and access tokens:在授權許可有效的期限中,你的應用程式可以藉由 access token 來取得 APIs 呼叫的授權。
    • Client ID and client secret:

      有三種類型的用戶 IDs (client IDs):
      • Web application
      • Installed application
      • Service Account


★範例演示

   請自行研讀


★尋找 APIs 的相關資訊
    Google APIs Client Library for .NET

Google API & VS.NET C# @2013 - 01

Google 的環境,相信已經有很多朋友在使用;但有在使用 Google API 的人可能就會少很多,也許連這名詞多沒聽說過呢!

會想使用 Google API 的功能,主要是因為個人有在 YouTube 上建置不少的播放清單,並且也將相關的資料建置成資料庫。希望可以將資料庫的內容,以程式控管方式來自動建立好一個一個獨立的播放清單。當然,這種想法若是行得通,那麼個人日常在使用的 Gmail、Google+、Calendar..等功能,就可以修正成更多不一樣的應用了。

於是,上網 google 一番找到不少資料,也有一些範例可供參考。不過實際動手做時,才發現到有不少問題存在。為此,才著筆記錄之。

首先,建置一個不需要 Google 認證的範例 (Discovery.ListAPIs),好誇入 Google API 的大殿堂。

步驟:

  1. 開啟 Visual Studio 2013
  2. 建置新專案:C# / Console Application
  3. 複製 範例程式碼 到專案中,並取代原有的 Program.cs 內容 [ 下載範例 ]
    務必記得,將範例程式中的 【ApiKey 值】,更換成你個人的【ApiKey 值】。
  4. 加入 Reference:NuGet Packages
  5. 建置程式(Build)


圖示:步驟 1, 2

image


圖示:步驟 3
(注意,程式碼區域右方的捲動軸上,有兩個紅色線段,這是因為此專案還未引入 Reference)
image


因為程式中 image 使用 Google API 的功能,所以一定要引用相關地 Library.進入專案中;
否則,程式無法正常運作。
這樣的過程,就被稱為【NuGet Packages 引入】。


【NuGet Packages 引入】的方法有二:

方法一:

image


方法二:

image


搜尋所需要的 Library:例如【Google.Apis.Discovery】

image

image

imageimage

image

圖示:步驟 5

image

補註:範例程式中,有使用到 BaseClientService 功能,所以要加入 using Google.Apis.Services; 指令,否則執行時會報錯!

What Is REST Anyway?

在 YouTube 上看到一個影片:Intro to REST,讓我想到要將什麼是 REST?,加以說明清楚。

好叫學習程式設計者,能對它有更多的了解。

在說明之前,請讀者先參考網路資源:REST API Tutorial

希伯來文鍵盤輸入對照表 Hebrew @ Win 7

要在 WIN 7 環境中使用 希伯來文,可以有下列幾種方法,擇一使用即可:

  • 安裝 Google 輸入工具 http://www.google.com/intl/zh-TW/inputtools/
  • 直接在 控制台 中,設定增加 希伯來文 選項。
    控制台/地區及語言,選擇鍵盤及語言頁簽/變更鍵盤
    在一般頁簽中,新增希伯來文

imageimage

image

 

使用環境安裝好後,接下來就是了解鍵盤的對應配置關係。

image

 

Hebrew_keyboard_win

正視當下、珍惜所有:和合本聖經

基督教中文聖經有一段漫長的翻譯歷史,自1807年 馬禮遜 入中國開始。

清末明初,語言、文字的使用有了相當的改變。寫作趨向以通俗之淺文理表達;然而大多數人是說官話。故有多種譯本的聖經被印製。也因宣教士各自翻譯並推銷自已的譯本,進而阻礙宣教工作的推廣。1980年在上海召開宣教士大會,會中討論共同翻譯共同譯本的必要性,並決議翻譯三種聖經:

  • 深文理和合譯本 (文理和合譯本)
  • 淺文理和合譯本
  • 官話和合譯本


這三種譯本的聖經,分別在不同年代問市:

  ● 深文理和合譯本 (文理和合譯本) 新約 1907、舊約 1919
  ● 淺文理和合譯本 新約 1904
  ● 官話和合譯本 新約 1906、舊約 1919


其中,官話和合譯本普遍被華人教會採用,即是今日簡稱之和合本

話講官話和合譯本翻譯的過程、該組織成員的用心與堅持等種種情境,可以經由該組織負責人:狄考文 的中國助理王元德回憶錄得知一二。

王元德的回憶錄01

王元德的回憶錄02

各位看倌呀,這和合本真是得來不易呀!!

更多地細節,可參考:福臨中華(4)辦學譯經的狄考文 (Calvin Mateer) 17:21

PS:王元德,也自行翻譯出王宣枕譯本

Google Chrome 設定檔問題 @ Win 7

在開機的過程中,出現“無法正確開啟您的設定檔。部分功能可能無法使用,請檢查該設定檔是否存在,並確定您擁有讀寫設定檔內容的權限。” 的錯誤訊息。(如下圖所示)

image


等開機完成後,啟動 Google Chrome 瀏覽器,一般地查看網頁操作是正常了;但是,有些操作動作就發現到會有不能正確使用的情形。例如:常用地點選目標連接,再按右鍵“另存新檔”,就沒有任何反應。


問題經過追查後,得知是 Google Chrome 瀏覽器的使用者設定檔損壞了。

問題處理要點:只要建立一個新的使用者設定檔來替代原有已損毀的檔案即可。

因為筆者是使用 Win 7 作業環境:

  1. 請先進入 C:\Users\使用者名稱\AppData\Local\Google\Chrome\User Data 目錄。
    此目錄下,有一 Default 資料夾,它含有 Google個人設定及書籤設定等資料。
  2. 先把 Default 加以改名,例如 Backup Default。保留原有的設定資料
  3. 重新開啟 Google Chrome 瀏覽器,之後,系統會重新建立起另一個 Default 資料夾。這個新生的 Default 資料夾即為 Google Chrome 的原始設定集。
  4. 關閉 Google Chrome 瀏覽器。
  5. 將 Default 資料夾中三個檔案:Visited LinksWeb DataWeb Data-journal 複製起來,覆蓋到 Backup Default 資料夾,並加以取代原有、損壞的舊檔案。
  6. 完成步驟5後,刪除 Default 資料夾;並且將 Backup Default 加以改名為 Default
  7. 繼續開心的使用 Google Chrome !!