Bot telegram dengan Yii2

Februari 7, 2017

ok langsung aja yaa , kita gunakan Api telegram disini https://core.telegram.org/  untuk bisa mengakses api nya, kita membutuhkan botfather layaknya CS dia akan kasih token yang sebelumnya kita membuat akun bot terlebih dulu dari botfather bisa dicek disini https://rubahmania.wordpress.com/2017/01/31/bot-telegram-dengan-foxpro/ . naa untuk di Yii saya gunakan yii2 basic, saya copas dari sini http://cintaprogramming.com/2015/07/18/membuat-bot-telegram/ terus saya sesuaikan dengan yii menggunakan httpclient dan membuat controller yang saya taruh dibawah folder commands


<?php
/**
* @link http://www.yiiframework.com/
* @copyright Copyright (c) 2008 Yii Software LLC
* @license http://www.yiiframework.com/license/
*/

namespace app\commands;
use Yii;
use yii\console\Controller;
use app\models\Yiibot;
use yii\data\ActiveDataProvider;
use yii\web\NotFoundHttpException;
use yii\filters\VerbFilter;
use yii\httpclient\Client;
/**
* This command echoes the first argument that you have entered.
*
* This command is provided as an example for you to learn how to create console commands.
*
* @author Qiang Xue <qiang.xue@gmail.com>
* @since 2.0
*/
class YiibotController extends Controller
{
/**
* This command echoes what you have entered as the message.
* @param string $message the message to be echoed.
*/
public function actionIndex()
{
while (true) {
$this->processOne();
}
}

protected function requesturl($method)
{
// $method = $method;
return 'https://api.telegram.org/bot'.Yii::$app->params['token'].'/'.$method;
}

protected function getUpdates($offset)
{
$url = $this->requesturl("getUpdates")."?offset=".$offset;
$resp = file_get_contents($url);
$result = json_decode($resp, true);
if ($result["ok"]==1)
return $result["result"];
return [];
}

protected function sendReply($chatid, $msgid, $text)
{
$data = [
'chat_id' => $chatid,
'text' => $text,
'reply_to_message_id' => $msgid

];

$client = new Client();
$response = $client->createRequest()
->setMethod('post')
->setUrl($this->requesturl('sendMessage'))
->addHeaders([
'content-type' => 'application/x-www-form-urlencoded',

])
->setData($data)
->send();
if ($response->isOk) {

$result= $response->content;
}

print_r($result);
}

protected function createResponse($text)
{
return "definisi " . $text;
}


protected function processMessage($message)
{
$updateid = $message["update_id"];
$message_data = $message["message"];
if (isset($message_data["text"])) {
$chatid = $message_data["chat"]["id"];
$message_id = $message_data["message_id"];
$text = $message_data["text"];
$response = $this->createresponse($text);
$this->sendreply($chatid, $message_id, $response);
}
return $updateid;
}


protected function processOne()
{
$update_id = 0;

if (file_exists("last_update_id")) {
$update_id = (int)file_get_contents("last_update_id");
}

$updates = $this->getupdates($update_id);

foreach ($updates as $message)
{
$update_id = $this->processmessage($message);
}
file_put_contents("last_update_id", $update_id + 1);
}
}

selanjutkan , buka command line (cmd) masuk kedalam folder rootnya

capture

akan jalan terus,kemudian chat deh bot telegram yang dibuat 🙂


[TIKI,POS,JNE]Cek Ongkos Barang Dengan Foxpro

Februari 1, 2017

Langsung aja bro 😀 , saya gunakan dari Rajaongkir

pertama , daftar akun dulu di rajaongkir http://rajaongkir.com/ , kemudia anda mendapatkan token

kedua, copas aja form yg saya kasih , berikut SSnya

capture

naa ini link sourcenya https://www.mediafire.com/?yzmbqmq2olwjmy4

PERHATIAN 

Karena ambil paket gratis jadi ada limit , jadi maaf jika ada error dan tidak semua bisa tambil datanya 😀

 


Bot Telegram dengan Foxpro

Januari 31, 2017

he hanya iseng aja, apa itu bot? bot adalah software yang secara otomatis merespon pesan yang kita berikan , naa begitulah he ,langsung aja ya

pertama, you harus instal telegram pastinya harus punya akun donk

kedua, untuk menggunakan Api Telegram kita butuh token bot nya, kita bisa minta token sama  https://telegram.me/botfather , caranya chat aja beliau he,

ketik


/newbot

nanti dibalasnya ,berikut rinciannya

1

klo selesai anda akan mendapat tokennya

1

akhirnya dapat tokennya, bisa deh kita manfaatkan

ketiga, informasi API Telegram ada di sini
https://core.telegram.org/api

ok , saya gunakan postman, untuk ngetes

/getme : liat profil bot kita


https://api.telegram.org/bot/getme

1


https://api.telegram.org/bot/getUpdates

/getUpdates : melihat chat yang masuk kebot


https://api.telegram.org/bot/sendMessage?chat_id=254066414&text=lagiada

/sendMessage : ngirim chat bro

OK, sampai sini paham kan 😀 paham aja lah

ke empat, kita pake foxpro, yiiiii , sederhana aja master, karna return dari api ada Json, maka kita gunakan function dari https://vfpx.codeplex.com/wikipage?title=nfJson&referringTitle=Home

kelimat , contoh script mengambil chat


thisform.grid1.RecordSource=''
lcurl='https://api.telegram.org/bot262999048:AAEMLOFyuFuxBnUcrkIEkn1bCzd1CvUxmkg/getUpdates'
** proses ini yang belum benar
oHTTP = Createobject("WinHTTP.WinHTTPRequest.5.1")
oHTTP.Open("POST", lcurl, .F.)
*oHTTP.setrequestheader('Content-Type', 'application/x-www-form-urlencoded;')
oHTTP.Send()
oHTTP.Status
lcrespons = oHTTP.responseText
cJson =nfJsonRead(m.lcrespons)
*?cjson.result(1).message(1).from
If cJson.ok = .T.
For Each varChat In cJson.result(1)
lid = varChat.Message(1).message_id
lnId = varChat.Message(1).From.Id
lcNama = varChat.Message(1).From.first_name
lcPesan = varChat.Message(1).Text
Select mChat
Locate For id1=lid
If !Found()
Insert Into mChat (id1,User1,Pesan1)Values(lid,lcNama,lcPesan)
Endif
Endf
Else
Messagebox('Gagal Chat',16,'Error')
Endif
Select User1,Pesan1,user2,pesan2,id1 From mChat INTO CURSOR cChat Order By id1 Asc
Select cChat
Go Top
thisform.grid1.RecordSourceType= 1
thisform.grid1.RecordSource='cChat'
Thisform.grid1.column1.DynamicBackColor="IIF(!EMPTY(ALLTRIM(User1)), RGB(255,0,0), RGB(255,255,255))"
Thisform.grid1.column2.DynamicBackColor="IIF(!EMPTY(ALLTRIM(pesan1)), RGB(255,0,0), RGB(255,255,255))"
Thisform.grid1.column3.DynamicBackColor="IIF(!EMPTY(ALLTRIM(User2)), RGB(0,255,0), RGB(255,255,255))"
Thisform.grid1.column4.DynamicBackColor="IIF(!EMPTY(ALLTRIM(pesan2)), RGB(0,255,0), RGB(255,255,255))"
Thisform.grid1.Refresh

he daripada nulis banyak nih saya kasih aja contoh formnya

whatsapp-image-2017-01-30-at-21-25-59

https://www.mediafire.com/?8dn0g2c9cor8224

 

silahkan download 😀


Share Database Mysql/MariaDb dengan Dropbox

Desember 29, 2016

OK langsung aja nih hemat kouta leemooott banget 🙂 , tau dropbox? yaa pasti tau lah media penyimpanna cloud lah dan juga punya fasilitas singkronisasi file, naa kita bisa manfaatkan itu untuk share database dan sinkron database dengan cloud he, ok begini cara singkat dan pas, saya gunaka MariaDB,

pertama, matikan service mysql

kedua, copy database yang ingin di singkronkan, paste di dalam folder dropbox, contoh

capture

kedua, modify file my.ini , sesuai path datadir,innodb_data_home_dir,innodb_log_group_home_dir lokasi dropbox anda


datadir = "C:/Users/4m4nd1t/Dropbox/data"

innodb_data_home_dir = "C:/Users/4m4nd1t/Dropbox/data"

innodb_log_group_home_dir = "C:/Users/4m4nd1t/Dropbox/data"

ketiga, restrat/start lagi servicenya

penampakan

capture

*catatat jika terjadi error saat service mysql, hapus, aja ibdata1 dan ib_logfile* , terus restart lagi OK

untuk download dropbox bisa disini https://www.dropbox.com/

 

gimana dengan menfaatk dropbox database kita bisa share via cloud singkron database dimana aja aman lancar 🙂 pake modem kah pake apapun koneksi asal jangan 12kb aja koneksi 😀 hoho

ok mg sukses selalu kawan


Menggunakan Menu CSS Bootstrap Template Di foxpro

November 24, 2016

bosan dengan menu menubar standar foxpro, hati pengen bisa menu kaya di web bisa manfaatkan bootstrap, taraaa foxpro bisa menfaatkan itu kawan, sesuai judul kita akan memanfaatkan menu dari css, misal menggunakan template bootstrap dari AdminLTE, bisa di download di sini https://almsaeedstudio.com/ , langkah selanjutnya

pertama, download tempalte adminLte, dan extrak, jika menggunakan xampp pada window taruh didalam htdocs,berikut gambarnya

1

kedua, kita coba akses di browser ketik localhost/adminLTE 

2

ketiga, ok, lanjut kefoxpor deh, bikin form baru, masukkan ole browser3

keempat,di form.init masukkan sintak ini


thisform.Olecontrol1.Navigate("http://localhost/adminLTE/")

kelimat, buat method di form kasih nama terserah situ aja,misalkan yactions, dan buat property juga dengan nama yurl

sintak method yaction


LPARAMETERS xurl
DO case
case xurl="yvfp://action1/"
MESSAGEBOX("Pesan Dari foxpro",0)
case xurl="yvfp://action2/"
DO FORM autocomplet.scx
ENDCASE

keenam,pada object olecontrol webbrowser tadi, pada event/procedure BeforeNavigate2 seperti gambar dibawah

4

kelimat, mari kita edit, index.html yang ada dala folder AdminLTE, anda bisa gunakan Notepate++ atau lainnya terserah, buka dan tambahakn sintak ini

<li class="treeview">
<a href="#">
<i class="fa fa-laptop"></i>
<span>Foxpro Banget</span>
<span class="pull-right-container">
<i class="fa fa-angle-left pull-right"></i>
</span>
</a>
<ul class="treeview-menu">
<li><a href="yvfp://action1/"><i class="fa fa-circle-o"></i>Messagebox</a></li>
<li><a href="yvfp://action2/"><i class="fa fa-circle-o"></i>Form 2</a></li>
</ul>
</li>

dimana naruhnya mas? ok anda bisa liat contoh sintak sebelumnya, bisa juga copas sintak sebelumnya pastika dari tag html <li> ampe </li> ketaun aja kq klo menggunakan notepad++ berwarna merah dan ada tanda + (plus)

udah gitu aja, inti kuncinya ada di tag <a href=”yvfp://action1/”> ini nanti yang di cek saat even procedure beforenavigate2 itu , OK moga paham yaa, dan ini bukan foxpro run browser lo ini cuma memanfaatkan menu dari template web yang bertebaran di google yang bisa kita pakai diproject foxpro kita, berikut contohnya

6

ciamik bukan, kita bisa edit menu tanpa build exe ulang,apa lagi menunya dihosting , bisa di edit nama aja menunya jika user pengen menu tambahan or pengurangan 😀 , moga mengerti aja, dan selamat berkarya