Weil Jimmer's BlogWeil Jimmer's Blog


Category:Software

Found 8 records. Now is Page 1 / 2.

為什麼 Telegram 在台灣這麼少人用
No Comments

Published:
Updated:2017-05-17 23:49:09

簡介

首先,我想先就 Telegram 是什麼樣性質的一個通訊軟體做個簡單的介紹,第一,它是為了讓用戶擁有秘密通訊的權利而誕生的軟體,本身就不是以營利為目標的,永遠也不會看到 Telegram 哪天發出聲明說開始要收費,或是限制上傳雲端的檔案數量,不會,相比之下,有太多通訊軟體本身就是以營利為目的,為了賺錢,而不是有這種"奉獻"自我、服務大眾的感覺。正因如此,這也是我很喜歡 Telegram 的原因之一,當然還有更多優點我沒有提到。

在台灣用戶數過少 (主要因素)

這種先入為主的概念,一直在很多人身上發生,第一次用了好用的東西,就有很大的機會一直用下去,要突然迫使用戶改用別的東西,是有相當程度的困難,我自己算是例外,我個人是不隨波逐流,在我眼中好就是好,壞就是壞,要用就要用最好的。Telegram 用戶數算很少嗎?相較其他通訊軟體,總得來說,是少的,但是數量也是滿驚人的,

根據 Telegram 官方統計,去年總活躍用戶數已達:100,000,000 人,但反觀在台灣的用戶數,真的是少之又少,可說是被 Line 攻略後,就難以再讓其他通訊軟體取代了吧。

如果裝了 Telegram,身邊卻沒有人使用,想必也沒有人想裝,大多數人是不會去推薦他人,甚至是要求身邊的人都裝自己裝的軟體。而我自己又剛好是特例,如果別人不用 Telegram 就找不到我了,無法傳送訊息或資料給我,我甚至會向周圍的人推薦。(前提是真的好用我才會推薦。)

官方語言是英文 (次要因素)

Telegram 不論是在推特,還是官方網站,官方的所有App,預設都是英文,並沒有繁體中文,這是缺點,但並非無法補足的缺點,有很多社群人士有推出一系列的繁體中文化教學,甚至包刮教人怎麼使用以及了解這套軟體的優缺點。

即便如此,大多數人看到英文還是避之唯恐不及,不想看到英文,或著說看不懂英文,裝完大概就打算砍了。(鄙人真是覺得可惜啊!這些英文單字應該不會難到看不懂的地步。)

其他個人因素

有不少卸載這套軟體的用戶是認為這軟體很不方便(好歸好,沒有人用才是真的),也有人本身就是 Line 的粉絲,認為有 Line 就夠了,何必再裝一套軟體,還有些人認為再多裝軟體會耗費自己的空間容量,會讓手機/電腦變卡。至於為何有人這麼想,我就不多做自己的見解了,給讀者們思考看看,那些人心裡想什麼。

以上,這三點是我認為在台灣很難普及的原因,要看每個人願不願意嘗試新的事物,願不願意打破傳統跳出框架,嘗試看看使用其他通訊軟體的生活,以及不排斥英文的介面。

By Weil Jimmer


This entry was posted in General, Software, Experience By Weil Jimmer.

Flickr Downloader 批量下載器
No Comments

Published:
Updated:2017-05-25 23:13:20

本程式可以批量下載 Flickr 網站上的圖片,主要功能為:

  • 一、批量下載多個相簿內的所有照片。
  • 二、批量下載多張相片。
  • 三、批量下載多位藝術家的全部相簿裡的圖片。
  • 四、由多位藝術家的相簿中人工挑選相簿並下載相簿內全部相片。
  • 五、批量下載多個群組的所有相片。
  • 六、可以選擇下載的照片大小,以及登入授權帳號就可以透過程式下載私密群組(您已加入)的照片,或是下載您設為私密的相片。

本程式可選擇「自動命名&創建資料夾做分類」、亦可下載照片全部集中在同個資料夾,以及針對每張照片以原標題命名或以數字化命名,下載時不會因為名稱重複而覆蓋掉。

另外,本程式可以儲存下載進度,預防下載不完可以改天繼續下載,以及可以自訂背景顏色、文字顏色、按鈕顏色,自訂是否縮小化退出程式。

下載地址【一】:https://url.weils.net/n

下載地址【二】:https://url.weils.net/r

產品連結:http://web.wbftw.org/product/flickrdownloader

本程式安全無毒 - 檢查報告

版本:1.1.0.3

2017.01.25 - 修復Bug - 些許網址相片ID分析失敗的問題。
2017.01.29 - 修復Bug - 細微錯誤及加入"下載完成音效"。
2017.02.22 - 更新內容/修復Bug - 人工挑選相簿介面加入相簿內的相片個數、修復該介面之選取相簿問題。
2017.03.07 - 修復Bug - 與相簿ID有關之細微錯誤。
2017.05.05 - 重大更新/修復Bug - 添加授權驗證以及選擇相片大小的功能。添加更多人性化功能。
2017.05.07 - 加入小更新/修復Bug - 添加更多極細微小功能。修復下載時可能未載完全所有照片。
2017.05.14 - 修復Bug - 修復記錄檔讀取問題。細微Bug修復。加入自動檢查更新。
2017.05.17 - 重大更新/修復Bug - 修復細微Bug,支援多線程同時下載,更新存檔方式,加快讀取存檔。
2017.05.23 - 修復Bug - 修復多線程資源衝突,導致存檔失敗的問題。
2017.05.25 - 修復Bug - 修復極細微Bug。


This entry was posted in C#, General, Software, Free, Product, Tools By Weil Jimmer.

淺談Telegram開發機器人
No Comments

Published:
Updated:2017-05-19 15:45:59

我做了一個很簡單的計時器,為了某群組裡面的高中生而設計,這也是我首次製作 tg 的機器人。我才做兩個而已,所以有些功能我真的不知道的我也沒辦法為您解答。

以下是講我的經歷:

首先必須先註冊個telegram帳號(廢話),然後搜索聯繫人@BotFather 這很重要,加入這個機器人之後,首先輸入:/newbot ,然後再輸入你想要取的名子(可以是中文),接著系統會提示你再輸入用戶名稱,結尾必須是 bot ,而且僅英文數字以及下畫線,接著你的機器人就創立了,BotFather會告訴你,你的Token,這很重要,因為等下傳送或是接收訊息都要用到這組文字。

開始就是程式設計的部分,我個人是比較熟PHP,所以用PHP開發。而且還是改寫自官方的腳本。但我現在已經明白原理了。

<?php

define('BOT_TOKEN', 'BotFather給你的Token');
define('API_URL', 'https://api.telegram.org/bot'.BOT_TOKEN.'/');

function apiRequestWebhook($method, $parameters) {
  if (!is_string($method)) {
    error_log("Method name must be a string\n");
    return false;
  }

  if (!$parameters) {
    $parameters = array();
  } else if (!is_array($parameters)) {
    error_log("Parameters must be an array\n");
    return false;
  }

  $parameters["method"] = $method;

  header("Content-Type: application/json");
  echo json_encode($parameters);
  return true;
}

function exec_curl_request($handle) {
  $response = curl_exec($handle);

  if ($response === false) {
    $errno = curl_errno($handle);
    $error = curl_error($handle);
    error_log("Curl returned error $errno: $error\n");
    curl_close($handle);
    return false;
  }

  $http_code = intval(curl_getinfo($handle, CURLINFO_HTTP_CODE));
  curl_close($handle);

  if ($http_code >= 500) {
    // do not wat to DDOS server if something goes wrong
    sleep(10);
    return false;
  } else if ($http_code != 200) {
    $response = json_decode($response, true);
    error_log("Request has failed with error {$response['error_code']}: {$response['description']}\n");
    if ($http_code == 401) {
      throw new Exception('Invalid access token provided');
    }
    return false;
  } else {
    $response = json_decode($response, true);
    if (isset($response['description'])) {
      error_log("Request was successfull: {$response['description']}\n");
    }
    $response = $response['result'];
  }

  return $response;
}

function apiRequest($method, $parameters) {
  if (!is_string($method)) {
    error_log("Method name must be a string\n");
    return false;
  }

  if (!$parameters) {
    $parameters = array();
  } else if (!is_array($parameters)) {
    error_log("Parameters must be an array\n");
    return false;
  }

  foreach ($parameters as $key => &$val) {
    // encoding to JSON array parameters, for example reply_markup
    if (!is_numeric($val) && !is_string($val)) {
      $val = json_encode($val);
    }
  }
  $url = API_URL.$method.'?'.http_build_query($parameters);

  $handle = curl_init($url);
  curl_setopt($handle, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($handle, CURLOPT_CONNECTTIMEOUT, 5);
  curl_setopt($handle, CURLOPT_TIMEOUT, 60);

  return exec_curl_request($handle);
}

function apiRequestJson($method, $parameters) {
  if (!is_string($method)) {
    error_log("Method name must be a string\n");
    return false;
  }

  if (!$parameters) {
    $parameters = array();
  } else if (!is_array($parameters)) {
    error_log("Parameters must be an array\n");
    return false;
  }

  $parameters["method"] = $method;

  $handle = curl_init(API_URL);
  curl_setopt($handle, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($handle, CURLOPT_CONNECTTIMEOUT, 5);
  curl_setopt($handle, CURLOPT_TIMEOUT, 60);
  curl_setopt($handle, CURLOPT_POSTFIELDS, json_encode($parameters));
  curl_setopt($handle, CURLOPT_HTTPHEADER, array("Content-Type: application/json"));

  return exec_curl_request($handle);
}

$target_times=1465772400;
$msg = '距離【畢業典禮】還有'."\n".floor(($target_times-time())/86400).'天'.floor((($target_times-time())%86400)/3600).'時'.floor(((($target_times-time())%86400)%3600)/60).'分'.(((($target_times-time())%86400)%3600)%60).'秒!';

if (time()>$target_times){
	$msg="";
}

$target_times=1467327600;
$msg .= "\n".'距離【指考】還有'."\n".floor(($target_times-time())/86400).'天'.floor((($target_times-time())%86400)/3600).'時'.floor(((($target_times-time())%86400)%3600)/60).'分'.(((($target_times-time())%86400)%3600)%60).'秒!';

if (time()>$target_times){
	$msg="";
}

function processMessage($message,$msg) {
  // process incoming message
  $message_id = $message['message_id'];
  $chat_id = $message['chat']['id'];
  if (isset($message['text'])) {
    // incoming text message
    $text = $message['text'];

    if ($text === "/start" or $text === "/start@botusername"){
		if ($msg!=""){
			apiRequestJson("sendMessage", array('chat_id' => $chat_id, "text" => $msg."\n聊天室ID:".$chat_id));
		}
    } else if ($text === "/show" or $text === "/show@botusername") {
		if ($msg!=""){
			apiRequestJson("sendMessage", array('chat_id' => $chat_id, "text" => $msg));
		}
    } else if (strpos($text, "/stop") === 0) {
	// stop now
    } else {
	//apiRequestWebhook("sendMessage", array('chat_id' => $chat_id, "reply_to_message_id" => $message_id, "text" => "couldn't understand what you said."));
    }
  }
}

if (php_sapi_name() == 'cli') {
  // if run from console
	if ($msg!=""){
		apiRequestJson("sendMessage", array('chat_id' => '00000000000', "text" => $msg));
	}
  exit;
}


$content = file_get_contents("php://input");
$update = json_decode($content, true);

if (!$update) {
  // receive wrong update, must not happen
  //apiRequest("sendMessage", array('chat_id' => '00000000000', "text" => $msg));
  echo 'OK';
  exit;
}

if (isset($update["message"])) {
  processMessage($update["message"],$msg);
}

程式碼都獻上了,現在開始講原理。

首先必須要有一台服務器,來執行WebHook,把你寫好的PHP檔案上傳到伺服器上面,注意檔名最好建立很特殊的名稱,讓一般使用者無法猜到你用什麼檔名,以預防惡意人士直接訪問你的程式。(洪水轟炸,或偽造請求之類的。)

上傳後,請直接訪問 https://api.telegram.org/bot{TOKEN}/?method=setWebhook&url=https://www.example.com/{secret}bot.php

參數url後面接的就是你要接收的位置,僅支援https,完畢後一旦直接對bot講話輸入指令,telegram就會立刻送出對話內容傳到你的程式,而你的程式處理完之後再回傳給telegram,這就是它的工作原理。

得到的內容長得像:

(
    [message_id] => 01
    [from] => Array
        (
            [id] => 123456789
            [first_name] => Nickname
            [username] => username
        )

    [chat] => Array
        (
            [id] => -123456789
            [title] => test
            [type] => group
        )

    [date] => 1464504645
    [text] => /say I just say?
    [entities] => Array
        (
            [0] => Array
                (
                    [type] => bot_command
                    [offset] => 0
                    [length] => 17
                )

        )

)

簡單明瞭,這只是message的部分,有可能會出現其他資料,例如傳圖片,有人加入群組時,就會不同了,請參閱 telegram 文檔,https://core.telegram.org/bots/api

而我的設計是當使用者輸入 /start 時,就會回傳 聊天室 id,因為我需要 id 才可以讓我直接發訊息回去,否則必須每次都是被動型傳輸,這樣我就可以主動傳送了,因為我不需要依靠對方先傳訊息給我才可以取得 id 回傳。

而我設定輸入指令 /show 時 就會彈出距離目標時間還有多久。而且利用 cron job 定時任務,每天都會 run 這程式發送一次倒數訊息。這就是整個簡單的概念。

接下來,在 tg 上就可以直接操作並直接顯示結果了,唯一缺陷就是沒有指令選單。這時可以再向 BotFather設定,輸入 /setcommands,再輸入 @botname指令(英文)+空格+簡介。(可以多行輸入)

最終預防機器人被濫用亂加入群組,可以設定鎖定,/setjoingroups@botname → Disable

這樣就大功告成了。其他功能自己探索,其實很簡單的。


This entry was posted in General, Software, Experience, Functions, Note, PHP By Weil Jimmer.

音樂播放程式 Media List Viewer
No Comments

Published:
Updated:2017-05-19 18:35:55

本程式可以選擇特定資料夾目錄並列舉資料夾內所有音樂,以資料夾為第一級/或子資料夾分類,並包含搜尋功能(可自訂資料夾內搜尋),置頂功能(一律顯示在最上方)。只是個簡單版的輕巧小程式。

下載地址【一】:https://url.weils.net/m

下載地址【二】:http://cht.tw/h/p9bxu

產品頁面:http://web.wbftw.org/product/yinlebofangchengshimedialistview


This entry was posted in General, Software, Free, Product By Weil Jimmer.

最棒的手機通訊軟體 Telegram
3 Comments

Published:
Updated:2017-05-19 14:33:13

安全聊天室

最大的特點是:Telegram 支持 RSA 2048 AES 256 的安全端對端加密通訊,這是我認為最棒的功能,它可以幫助用戶阻擋外人侵入,竊取你們的通訊,而Line、FB、Yahoo……等通訊軟體,基本上,聲稱有安全加密,問題是:那些供應商是不是就可以看你的對話!

Telegram 的獨特 秘密聊天室 可以確保用戶的通訊安全,不必擔心講機密事情被警察監聽,被政府監聽,連Telegram自己都不能解密,所以,你們之間的通訊只有在你們之間才可以看得到!

除此之外, Telegram 還支持 秘密訊息 自我銷毀 的功能,超過一定時間就會自動毀滅文檔,是指 雙方的資料同步消失,若正在聊天中,用戶主動刪除訊息,而對方那邊也會跟著同步刪除,非常酷炫!

各平台/裝置支援度高

而且 Telegram 這款應用程式支援所有平台,IOS、Android、Windows、Linux 通通支援!不論手機還是電腦版,非常方便,甚至可以同時登入!還有更離譜的功能是可以自己傳訊息給自己。

容量大、永久保存的雲端

Telegram 所提供出來的雲端空間呢,是無限空間無限流量的,但是單個檔案上限大小是 1.5 GB ,意思是不可以上傳過大的檔案,同時,不論手機或電腦版,都可以傳輸檔案,傳輸照片"原檔",而非壓縮,傳輸任意格式的檔案,不像 Line 只有電腦版才可以上傳檔案,手機板無法傳檔案,聊天室圖片轉寄還會越轉越失真,轉越多人越模糊。真的很爛。

在線狀態/列表

而且在聊天室中,打字或錄音或上傳檔案,都會被顯示在狀態列,還有上線列表可以查看最後上線日期,所以可以知道誰可能已讀了,也可以知道誰正在打字中、上傳檔案中…。當然也可以隱藏最後上線時間。

管理員

在Telegram裡面,還有所謂的管理員,可以決定用戶的加入與踢出,決定群組圖片、名稱,同理也可以設定人人都是管理員,但,創始人是無法被剔除的。

同步刪除

超級群組中,會多出獨特的功能就是「可以編輯訊息」、「可以刪除訊息」,刪除訊息?什麼意思,本來不就可以刪了嗎?新版的更新後,現在已經可以在私聊中刪除自己的對話(短期內),對方也會消失,在超級群組中,自己刪掉自己的訊息,是大家都會消失掉的!

Telegram 的壓縮品質也較佳,圖片比較清晰,如果還嫌模糊就傳原檔吧!

純熟的機器人API

另外,它還可以支援 「機器人」,例如投票機器人、GIF搜圖機器人、調查機器人…,可以在聊天室中打指令實現某些功能,這個就讓用戶們自己去探索拉!

官網:https://telegram.org/

缺點

Telegram 的缺點有點少,首先是影片不可以邊播放邊下載

加好友方式,得用電話簿的方法加入,必須要知道好友的電話號碼。

缺點…其實我實在想不出有啥麼缺點。


This entry was posted in Software, Experience, Free, The Internet By Weil Jimmer.

 1 2 /2 頁)下一頁

Visitor Count

pop
nonenonenone

Note

快訊:中華民國106年5/24
同性戀合法

歡迎前來本站。

Search

Republic Of China
Taiwan is a sovereign independent country, not a province of People's Republic of China.

We are "Republic of China (ROC)".

Communist Party of China is illegal and slaving people of China.
Privacy is your right and ability to be yourself and express yourself without the fear that someone is looking over your shoulder and that you might be punished for being yourself, whatever that may be.

It is quality rather than quantity that matters.

I WANT Internet Freedom.

Reality made most of people lost their childishness.

Justice,Freedom,Knowledge.

The Lie We Live

youtube

The Questions We Never Ask

youtube

Support The Zeitgeist Movement

The Zeitgeist Movement

Man

youtube

In The Fall

youtube

Facebook is EATING the Internet

Facebook

Support/Donate

This site also need a little money to maintain operations, not entirely without any cost in the Internet. Your donations will be the best support and power of the site.
MethodBitcoin Address
bitcoin1NRMVGGpm2T1pmeejisLSEhCXfCefEW9V4

Recent Comments

sickcatail on STEAM免費序號

包包 on STEAM免費序號

問問題 on 最棒的手機通訊軟體 Telegram

unocme on STEAM免費序號

窩仔 on STEAM免費序號

Categories

Announcement (3)

Bash (1)

C (1)

C# (4)

C++ (1)

Experience (37)

Flash (2)

Free (10)

Functions (35)

Games (13)

General (42)

HTML (7)

Java (12)

JS (7)

Mood (23)

Note (23)

Office (1)

PHP (9)

Privacy (2)

Product (9)

Python (4)

Software (8)

The Internet (14)

Tools (12)

VB.NET (8)

WebHosting (7)

Wi-Fi (5)

XML (4)