分類
好用軟體

幫幫數發部吧!

日前的一篇新聞:

https://www.upmedia.mg/news_info.php?Type=24&SerialNo=216712

看到有關這個”樂齡好幫手”網站上的點閱率偏低的問題:

https://agepass.adi.gov.tw/

看起來已經看不到點閱率了, 我們只好利用 API 來查看看, 以首頁第一篇的內容網址: https://agepass.adi.gov.tw/card/h57 為例, 我們可以利用該網址的 API Call 來取得內容:

curl 'https://agepass.adi.gov.tw/api/v1/card/h57' -H 'Referer: https://agepass.adi.gov.tw/card/h57'

在 Console 執行一下可以取出對應的 JSON 回應 (或利用線上工具 https://reqbin.com/curl), 其中的 view_count 如下:

"view_count": 486,
"like_count": 15,

也就取得了點閱次數為 486 次了, 隨著多打幾次 curl 點閱次數也會隨之增加, 大家可以利用這個方式來取得文章的點閱次數, 也可以幫幫數發部的網站有更多的點擊數哦!

[2024/11/24 17:05]

由於原來的範例中的 https://agepass.adi.gov.tw/card/h57 文章已下架了, 所以可以改用其他可用的文章如:

分別對應的 API 為 https://agepass.adi.gov.tw/api/v1/card/h66https://agepass.adi.gov.tw/api/v1/card/2220

利用 curl 訪問指令如下:

curl 'https://agepass.adi.gov.tw/api/v1/card/h66' -H 'Referer: https://agepass.adi.gov.tw/card/h66'
curl 'https://agepass.adi.gov.tw/api/v1/card/2220' -H 'Referer: https://agepass.adi.gov.tw/card/2220'

PS:

上面的 curl 為 linux 下的內建指令, 若是在 Windows 下要使用內建的 cURL, 語法不太相同, 指令則為:

curl -H “Referer: https://agepass.adi.gov.tw/card/2220” https://agepass.adi.gov.tw/api/v1/card/2220

 

 

 

分類
WebTrend

Google Trending搜尋趨勢API

利用 Google Trending 搜尋趨勢: https://trends.google.com/trending?geo=TW 取得最近的搜尋趨勢.

上面的連結是取得台灣地區的搜尋趨勢, 而其他地方的如下:

若要取得這個內容, 有沒有 API工具可以利用呢? 看起來 Google 目前沒有這個公開的 API可供利用, 不過這家公司提供了這個服務:

https://serpapi.com/

其中的 Google Trends API 可以提供這個結果:

https://serpapi.com/google-trends-api

分類
好用軟體

IP調查小程式-功能新增

之前介紹了使用 Cloudflare worker來進行客戶端 IP調查的小程式(https://diary.tw/archives/2182), 最近新增一些功能上來.

  1. 利用瀏覽器訪問時, 會加上完整的 html, 並增加了 Google Analytics 追蹤碼, 來記錄使用的次數.
  2. 若是利用非瀏覽器訪問時, 會直接輸出純文字 ip 而不會加上其他的內容, 例如: curl https://ip.diary.tw/
  3. 利用這個 geoplugin 這個免費的 API 功能來查找對應 IP的資訊, 請參考這個 API文件說明: https://www.geoplugin.com/webservices/json, 使用方式為 https://ip.diary.tw/?data=geo, 可以查找對應 IP的所在地與該地區使用貨幣與匯率. 輸出範例如下:
{
  "geoplugin_request":"12.34.56.78",
  "geoplugin_status":200,
  "geoplugin_delay":"1ms",
  "geoplugin_credit":"Some of the returned data includes GeoLite2 data created by MaxMind, available from <a href='https:\/\/www.maxmind.com'>https:\/\/www.maxmind.com<\/a>.",
  "geoplugin_city":"New Taipei City",
  "geoplugin_region":"New Taipei City",
  "geoplugin_regionCode":"NWT",
  "geoplugin_regionName":"New Taipei City",
  "geoplugin_areaCode":"",
  "geoplugin_dmaCode":"",
  "geoplugin_countryCode":"TW",
  "geoplugin_countryName":"Taiwan",
  "geoplugin_inEU":0,
  "geoplugin_euVATrate":false,
  "geoplugin_continentCode":"AS",
  "geoplugin_continentName":"Asia",
  "geoplugin_latitude":"24.9466",
  "geoplugin_longitude":"121.586",
  "geoplugin_locationAccuracyRadius":"20",
  "geoplugin_timezone":"Asia\/Taipei",
  "geoplugin_currencyCode":"TWD",
  "geoplugin_currencySymbol":"NT$",
  "geoplugin_currencySymbol_UTF8":"NT$",
  "geoplugin_currencyConverter":32.0408
}

 

請大家多加利用 IP查找小功具: https://ip.diary.tw

分類
Python

使用WordPress posts API新增文章(使用Python)

如何使用 WordPress posts API 來新增文章呢?

可以先參考官方資料:

https://developer.wordpress.org/rest-api/reference/posts/#create-a-post

而 API的位置在: https://{hostname}/wp/v2/posts

而新增一篇文章的方式有了這些資料就可以很快速地建立起來, 另外我們還需要先有一個 application password 來進行驗證才行, 在 WordPress 5.6 版本起, 可以在使用者下建立 application password, 所以可以透過這個方式來進行驗證, 可以參考這裡:

https://make.wordpress.org/core/2020/11/05/application-passwords-integration-guide/

分類
Wordpress

WordPress的網站縮圖API-mShots

這個是依附在 akismet 下的透過網址可以成生網站的縮圖, API的語法如下:

https://s0.wp.com/mshots/v1/https%3A%2F%2Fdiary.tw%2F?w=800

其中有兩個部分, API為: https://s0.wp.com/mshots/v1/ 後面直接加上 urlencode 後的網址, 另外有個參數是 w 為指定寬度.

以上面的網址來看, 就是本站的首頁 https://diary.tw/ , 而 urlencode 後就是 https%3A%2F%2Fdiary.tw%2F , 並加上 ?w=800 來產出圖檔囉.

像是

這個專案的 GitHub 連結: https://github.com/Automattic/mShots/

PS: 在 WordPress後台留言管理介面會用到這組 API, 若要停用可以參考這篇: https://wordpress.org/support/topic/how-to-disable-mshots-service/

繼續閱讀:

https://shkspr.mobi/blog/2018/12/using-the-wordpress-mshots-screenshot-api/

分類
程式技術

取得Youtube影片的縮圖

之前介紹過 Youtube Data API (https://diary.tw/archives/2032), 其中利用 part=snippet 可以取得縮圖的網址, 不過仔細看一下, 目前應該都統一了, 其實只需要 videoId 就可以自行組合出對應的縮圖, 清單如這裡:

https://developers.google.com/youtube/v3/docs/thumbnails

其中預設會出現的有: default, medium, high, standard, maxres 共計5組, 不過再觀察 player用的縮圖, 預設也會有 0, 1, 2, 3 共計 4組, 合起來就會有 9組圖檔.

網址也很單純, 也就是:

https://img.youtube.com/vi/[videoId]/[thumbnail_type].jpg

分類
程式技術

Youtube Data API 中的Category ID

上次寫了 Youtube Data API (https://diary.tw/archives/2032) 來看看若要加上分類要如何進行.

當然需要先取得 category id 囉 (API中的欄位是 videoCateogryId), 從網路上找到的資料如下:

https://gist.github.com/dgp/1b24bf2961521bd75d6c

由於各國家/地區的 category 也可能有不同, 在台灣的清單如下(由上傳分類項目取得): 電影與動畫、汽車與車輛、音樂、寵物與動物、體育、旅遊與活動、遊戲、人物與網誌、喜劇、娛樂、新聞與政治、DIY 教學與生活風格、教育、科學與科技、非營利組織與社運活動.

對應上面的網址如下:

id 中文 英文
1 電影與動畫 Film & Animation
2 汽車與車輛 Cars & Vehicles
10 音樂 Music
15 寵物與動物 Pets & Animals
17 體育 Sport
19 旅遊與活動 Travel & Events
20 遊戲 Gaming
22 人物與網誌 People & Blogs
23 喜劇 Comedy
24 娛樂 Entertainment
25 新聞與政治 News & Politics
26 DIY 教學與生活風格 How-to & Style
27 教育 Education
28 科學與科技 Science & Technology
29 非營利組織與社運活動 Non-profits & Activism

所以若是需要找出教育的排行, 可以利用相同的API, 但多加上videoCategoryId=27:

https://youtube.googleapis.com/youtube/v3/videos?part=snippet%2CcontentDetails%2Cstatistics&chart=mostPopular&regionCode=US&videoCategoryId=27&key=[YOUR_API_KEY]

這樣即可取得囉.

[2022/2/17 15:30]

實作出國家/地區與分類項呈現方式, 請參考範例:

https://sample.diary.tw/yttrend/detail.php

 

分類
好用軟體

好用的負載測試工具-k6

在找負載測試工具時, 偶然間發現這個工具, k6:

https://k6.io/

可以使用開源版本自行使用, 或付費使用 cloud方案, 價格如下:

https://k6.io/pricing/

由於是全API/CLI結構, 並提供了大量的範例程式碼, 同時可以滿足壓力測試使用外, 還可以做自動化腳本測試與單元測試等功能, 十分適合開發與上線前驗測的作業與準備.

文件十分完整與容易上手:

https://k6.io/docs/

大家可以自行測試看看.

繼續閱讀:

分類
程式技術

Yahoo天氣RSS API需要驗證

之前的一個使用天氣 API 的專案, 因為 Yahoo RSS API 需要驗證, 變成非公開性的 API, 例如:

http://weather.yahooapis.com/forecastrss?u=c&amp;w=2306179

目前會回覆:
Please provide valid credentials. OAuth oauth_problem=”OST_OAUTH_PARAMETER_ABSENT_ERROR”, realm=”yahooapis.com”

而無法順利取得內容, 經查找相關資料, 應該是 3/15 起, yahoo 這組 API 需要做驗證才能使用, 於是找了資料, 可以改用 YQL 的方式來查詢, 相容的查詢指令如下:

http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20weather.forecast%20where%20%20u=%22c%22%20and%20woeid%20=2306179

其中的 YQL 為:

select * from weather.forecast where u=”c” and woeid=2306179

即可獲得相容的天氣 API 回傳結果.

參考之前文章:
https://diary.tw/archives/1215

分類
程式技術

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