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 😀


Upload File (Image) menggunakan Foxpro+PHP ke Hosting

September 3, 2016

Ok langsung aja, biasanya kita menggunakan FTP untuk melakuakn transfer file terutama image lah, tp bagaimana jika dilakukan tanpa FTP tapi kita menggunakan Php sebagai jalan alternatifnya, yaa kita bisa menggunakan webservice salah satunya, tp saya tidak melakukan itu (saya gagal maaf nubi), tp saya muncul ide melakukan dengan cara berbeda, yaitu memanfaatkan olebrowser :), ok sukses deh, berikut kodingnya sederhananya

pertama, pastinya bikin dulu formnya beserta ole browsernya

1

kedua, isi sintax di command button

with thisform.obrowser
.navigate("http://bumiantaludin.co.nf/sdmk/index.php")
do while .busy or .readystate#4
enddo
inkey(1)
with .document
.getElementbyId("upload").click
thisform.text1.Value=.getElementbyId("upload").value
.getElementbyId("uploadimg").click
endwith

ENDWITH

ketiga, bikin file uploadnya kasih namanya index.php,


<?php
$target_path = "uploads/";
$target_path = $target_path . basename( $_FILES['upload']['name']);
if(move_uploaded_file($_FILES['upload']['tmp_name'], $target_path)) {
echo "Nama File ". basename( $_FILES['upload']['name']).
" Sukses Di Upload";
} else{
echo "Upload Error, Coba sekali lagi Brow!";
}
?>
<html>
<body>
<form enctype="multipart/form-data" action="<?php echo($_SERVER['PHP_SELF']) ?>" method="post">

<p>File: <input type="file" id="upload" name="upload" /></p>
<p><input type="submit" name="uploadimg" id="uploadimg" value="Post" /></p>
</form>
<body>
</html>

pastikan anda sudah membuat folder upload

ok coba kita running deh

coba klik bottonnya, pilih file imagenya

Capture

dan sukses terupload sempurna

Silahkan dkreasi sendiri,OK sukses 🙂


Yii2+Pusher, Push Notifications

Juli 27, 2016

Langsung aja nih, kali ini saya coba bikin Notification di Web menggunakan Yii dan pusher, apa itu pusher, baca aja sendiri 😀 https://pusher.com/ , untuk menggunakan pusher ini anda harus mendaftar terlebih dahulu kemudian anda akan mendapatkan id,key, secret, yang nantinya digunakan sebagai token ke pusher,(lihat contoh di situsnya)  naa untuk menambahkan ke yii kita menggunakan composer installnya ambil di github di sini https://github.com/pusher/pusher-http-php , naa baru lanjut ke yii, saya gunakan yii advanced,

 

  • backend – PushController.php

use Pusher;

...

...

...

public function actionPush()
{

$model = new DynamicModel(['msg']);
$model->addRule(['msg'], 'string', ['max' => 128]);

if ($model->load(Yii::$app->request->post())){
$msg=$model->msg;
$app_id = 'YOUR_APP_ID';
$app_key = 'YOUR_APP_KEY';
$app_secret = 'YOUR_APP_SECRET';

$pusher = new Pusher( $app_key, $app_secret, $app_id );
$pusher->trigger('test_channel', 'my_event', ['message' => $msg] );
return $this->redirect(['push','model'=>$model]);

}else{

return $this->render('push',[
'model'=>$model,
]);
}
}

  • View/Push.php

use yii\helpers\Html;
use yii\bootstrap\ActiveForm;

$this->title = 'Notifikasi';
$this->params['breadcrumbs'][] = $this->title;
?>
<div class="site-login">
<h1><?= Html::encode($this->title) ?></h1>
<div class="row">
<div class="col-lg-5">
<?php $form = ActiveForm::begin(['id' => 'push-form']); ?>

<?= $form->field($model, 'msg')->label('Pesan')->textInput(['autofocus' => true]) ?>

<div class="form-group">
<?= Html::submitButton('Push', ['class' => 'btn btn-primary', 'name' => 'login-button']) ?>
</div>

<?php ActiveForm::end(); ?>
</div>
</div>
</div>

selanjutnya untuk di frontend

  • view – main.php

<script src="https://js.pusher.com/3.1/pusher.min.js"></script>
<script>

// Enable pusher logging - don't include this in production
Pusher.logToConsole = true;

var pusher = new Pusher('ce901ef053e354fcd965', {
encrypted: true
});

var channel = pusher.subscribe('test_channel');
channel.bind('my_event', function(data) {
// alert(data.message);
var message = data.message;
toastr.info(message);
});
</script>

  • appasset.php

public $css = [
'css/site.css',
"//cdnjs.cloudflare.com/ajax/libs/toastr.js/latest/css/toastr.min.css"
];
public $js = [
'//cdnjs.cloudflare.com/ajax/libs/toastr.js/latest/js/toastr.min.js'
];

naa udah gitu aja master, kemudian jalankan bagian backend (atas) jalankan frontend (bawah) di window tab baru,

1

kemudian isi dan tekan push

2

hasilnya begitu lah master 😀 , moga mengerti dan paham, sama sama belajar kita 😀


Memanfaatkan Libary VFP2C32 (VFP to C 32 bit)

Mei 24, 2016

sayang klo ga dimanfaatkan 😀 libary yang cukup lengkap bisa dimanfaatkan silakhan di gunakan dan pastikan juga instal intellisense dan baca help nya 🙂 , liat aja deh examplenya bisa download disini http://vfpx.codeplex.com/wikipage?title=VFP2C32&referringTitle=Home


Visual Foxpro Advanced

Mei 19, 2016

Visual Foxpro 10 hehe cuma namanya aja, sebenarnya fix bug dari visual foxpro 9 unofficial service package , saat ini bug yg di temukan di vfp 9 dan udah di fix di visual foxpro advanced adalah

1, VFP 9.0 Fix - Report Footer
2, VFP 9.0 Fix2 - Macro Substitution
3, VFP 9.0 Fix3 - Large Procedure In The Form
4, VFP 9.0 Fix4 - Invalid RelationalExpr Expression
5, VFP 9.0 Fix5 - Invisible BreakPoint
6, VFP 9.0 Fix6 - Page Setup Dialog Box
7, VFP 9.0 Fix7 - Varbinary Or Blob Data
8, VFP 9.0 Fix8 - Find Or Replace Dialog Box
9, VFP 9.0 Fix9 - Replace Command Fields Count
10, VFP 9.0 Fix10 - Access And Assign Methods
11, VFP 9.0 Fix11 - Private Data Session
12, VFP 9.0 Fix12 - File Handle Number Zero
13, VFP 9.0 Fix13 - OS() Function
14, VFP 9.0 Fix14 - Grid.Optimize Property
15, VFP 9.0 Fix15 - Property Names To Lowercase
16, VFP 9.0 Fix16 - ComboBox Control

so saat ini saya pake vfpa 32bit aja, yg 64bit masih beta 😀 , dgn vfpa ini meningkatan keamanan enkrispi exe saat build lebih bagus tidak bisa di refox dari pada hasil vfp9 yang mudah di refox, dan juga punya compress exe sendiri sama kaya brand di refox 🙂 jadi ukuran exenya bisa ampe 50% berkurang

klo pake ini vfpa ini runtime yang harus di ikut sertakan adalah VFPAT.DLL dan VFPAR.DLL jika anda pake enkrispsi dari vfpa maka tambahkan vfpcore.dll yang terdapat dalam folder enkripsi itu, klo mau coba silahkan selama ini fine aja di windows 10 64bit 😀

 

ref download  : http://www.baiyujia.com/f_download.asp