Пользовательская утилита командной строки. Как? - PullRequest
0 голосов
/ 27 июня 2009

Недавно я выпустил класс с открытым исходным кодом - упаковщик API-функций, доступных на одном из ведущих SMS-шлюзов, который обеспечивает доступ через HTTP-API для отправки SMS-сообщений.

Теперь я хочу создать пользовательскую точность командной строки, которая может быть доступна пользователю в любом месте командной строки, чтобы он мог отправлять SMS, просто запустив консольную команду, подобную этой:

$ my_custom_send_sms_command -u your_username -p your_password -k your_api_key 447771234567 'Hello from CLI'

Пожалуйста, объясните, как это можно сделать?

Обновлен:

Класс написан на PHP.

1 Ответ

0 голосов
/ 27 июня 2009

Убедитесь, что у вас установлен пакет PHP CLI. На моем Ubuntu VPS я должен был запустить:

$ apt-get install php5-cli

Убедитесь, что оно установлено:

$ /usr/bin/php -v

Затем создайте файл с именем что-то вроде sendsms.php с содержимым, похожим на это:

#!/usr/bin/php -q
<?php

  // command line parameters are in the format:
  //     key1 value1 .. keyN valueN number message

  $username = "";
  $password = "";
  $apikey = "";

  // process pairs of arguments up to the last two    
  for ($x = 0; $x < ($argc - 3); $x++)
  {
    if ($argv[$x] == "-u") $username = $argv[$x + 1];
    if ($argv[$x] == "-p") $password = $argv[$x + 1];
    if ($argv[$x] == "-k") $apikey = $argv[$x + 1];
  }
  $number = $argv[$argc - 2];
  $message = $argv[$argc - 1];

  // To do: call the SMS API
  // For now just output the info   
  echo("Username = " . $username . "\r\n");
  echo("Password = " . $password . "\r\n");
  echo("API key = " . $apikey . "\r\n");
  echo("Number = " . $number . "\r\n");
  echo("Message = " . $message . "\r\n");
?>

Убедитесь, что у файла есть права на выполнение:

chmod 755 sendsms.php

А затем запустите его из текущей папки следующим образом:

$ ./sendsms.php -u your_username -p your_password -k your_api_key 447771234567 'Hello from CLI'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...