[UDF] Gmail API - Emails automation with AutoIt!
By
Ascer, in AutoIt Example Scripts
-
Recently Browsing 0 members
No registered users viewing this page.
-
Similar Content
-
By tarretarretarre
About AutoIt-API-WS
AutoIt-API-WS is a light weight web server with expressive syntax, with the sole purpose of wrapping your existing AutoIt app with little to no effort.
With AutoIt-API-WS you can send and receive data between any application or framework, as long they can handle HTTP requests, which is an industry standard today.
Like my other communcations UDF AutoIt-Socket-IO AutoIt-API-WS is heavily inspired from the big boys, but this time its Laravel and Ruby on Rails.
Features Highlights
No external or internal dependencies required RESTful mindset when designed Expressive syntax Small codebase Heavy use of Michelsofts Dictionary object Limitations
Not complient with any RFC, so something important could be missing. Time will tell! One persons slow loris attack will kill the process forever. Example of implemetnation (With screenshots)
This is a basic cRud operation with the RESTful mindset in use.
#include "API.au3" #include <Array.au3> _API_MGR_SetName("My APP DB adapter") _API_MGR_SetVer("1.0 BETA") _API_MGR_SetDescription("This adapter allows you to get this n that") _API_MGR_Init(3000) _API_MGR_ROUTER_GET('/users', CB_GetUsers, 'string sortBy', 'Get all users, sortBy can be either asc or desc. asc is default') _API_MGR_ROUTER_GET('/users/{id}', CB_GetUsersById, 'int id*', 'Get user by id') While _API_MGR_ROUTER_HANDLE() WEnd Func DB_GetUsers() Local $userA = ObjCreate("Scripting.Dictionary") Local $userB = ObjCreate("Scripting.Dictionary") $userA.add('id', 1) $userA.add('name', 'TarreTarreTarre') $userA.add('age', 27) $userB.add('id', 2) $userB.add('name', @UserName) $userB.add('age', 22) Local $aRet = [$userA, $userB] Return $aRet EndFunc Func CB_GetUsers(Const $oRequest) Local $aUsers = DB_GetUsers() If $oRequest.exists('sortBy') Then Switch $oRequest.item('sortBy') Case Default Case 'asc' Case 'desc' _ArrayReverse($aUsers) EndSwitch EndIf Return $aUsers EndFunc Func CB_GetUsersById(Const $oRequest) Local Const $aUsers = DB_GetUsers() Local $foundUser = Null For $i = 0 To UBound($aUsers) -1 Local $curUser = $aUsers[$i] If $curUser.item('id') == $oRequest.item('#id') Then $foundUser = $curUser ExitLoop EndIf Next If Not IsObj($foundUser) Then Return _API_RES_NotFound(StringFormat("Could not find user with ID %d", $oRequest.item('#id'))) EndIf return $foundUser EndFunc When you visit http://localhost:3000 you are greeted with this pleasent view that will show you all your registred routes and some extra info you have provided.
When you visit http://localhost:3000/users the UDF will return the array of objects as Json
And here is an example of http://localhost:3000/users/1
More examples can be found here
(NEWEST 2020-09-21)
Autoit-API-WS-1.0.3-beta.zip
OLD VERSIONS
Autoit-API-WS-1.0.0-beta.zip Autoit-API-WS-1.0.1-beta.zip
-
By learner123
Hi All,
I am new to this AUTO IT and I have created a script that will open an app,enter pin and copy the code generated to clipboard. My java code call this autoIT script and use the copied generated code from clipboard.
This works fine when server window is on focus. My server is an windows server.
But when I minimize or disconnect the server, the script opens the app.exe but doesn't copy any value to clipboard.
Can anyone help me on this 😐
Run("C:\Program Files (x86)\RSA SecurID Software Token\SecurID.exe")
Local $hWnd=WinWait("abc - RSA SecurID Token") ; waits until the window is the active window
$hWin = WinGetHandle("abc - RSA SecurID Token");
ControlSend($hWnd,"","","1111") ; simulates pressing the Home key
ControlSend($hWnd,"","","{ENTER}");
ControlSend($hWnd,"","","^c");
Sleep(1000) ;
ControlSend($hWnd,"","","^c");
-
By AlienStar
hello everybody
I need to automate uploading image via Autoit to my wordpress blog
here is my code
$url = "https://engnajjar.wordpress.com/wp-admin/media-new.php?browser-uploader" Local $oIE =_IECreate($url) Local $async_upload = _IEGetObjById($oIE, "async-upload") Local $upload_btn = _IEGetObjById($oIE, "html-upload") _IEAction($async_upload, "click") Sleep(1000) $hChoose = WinGetHandle("[CLASS:#32770]") WinWaitActive($hChoose, "Choose File to Upload", 10) ControlFocus($hChoose,"","Edit1") Sleep(1000) ControlSetText($hChoose, "", "Edit1", "C:\Users\administrator\Pictures\image.jpg") ControlClick($hChoose, "", "Button1") when the code open popup upload dialog it can't set image location text in edit box to select image
the code still wait popup upload dialog although the dialog is active.
when I close the dialog, the code back to work then exit without detect the dialog.
where is the problem in my code please ?
-
By nacerbaaziz
goodmorning autoit team
today am comming with some winhttp problems, i hope that you can help me to solve them.
the first problem
is when opening a request
my forums api allow me to delete any post using the api key
all functions work, i mean post / get
but when i tried to use the delete verb it's gave me an html 404 error
here is what am tried
#include "WinHttp.au3" ; Open needed handles Global $hOpen = _WinHttpOpen() Global $hConnect = _WinHttpConnect($hOpen, "xxxxxxxx.com") ; Specify the reguest: Global $hRequest = _WinHttpOpenRequest($hConnect, "Delete", "/vb/Api/posts/10447/?hard_delete=true", default, default) _WinHttpAddRequestHeaders($hRequest, "XF-Api-Key:xxxxx") _WinHttpAddRequestHeaders($hRequest, "XF-Api-User:xxxxx") ; Send request _WinHttpSendRequest($hRequest) ; Wait for the response _WinHttpReceiveResponse($hRequest) Global $sHeader = 0, $sReturned = 0 ; If there is data available... If _WinHttpQueryDataAvailable($hRequest) Then $sHeader = _WinHttpQueryHeaders($hRequest, $WINHTTP_QUERY_CONTENT_DISPOSITION) ;Or maybe: ; $sHeader = _WinHttpQueryHeaders($hRequest, BitOR($WINHTTP_QUERY_RAW_HEADERS_CRLF, $WINHTTP_QUERY_CUSTOM), "Content-Disposition") Do $sReturned &= _WinHttpReadData($hRequest) Until @error msgBox(64, "", $sReturned) endIf ; Close handles _WinHttpCloseHandle($hRequest) _WinHttpCloseHandle($hConnect) _WinHttpCloseHandle($hOpen)
and here is the error message
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <html><head> <title>403 Forbidden</title> </head><body> <h1>Forbidden</h1> <p>You don't have permission to access /vb/Api/posts/10447/ on this server.<br /> </p> </body></html>
i hope you can help me
thanks in advance
-
By argumentum
I can TCP/IP in AutoIt, hence, make a HTTP deamon. Now, how can I HTTPS to use SSL !??
Well, Apache has this "mod_proxy.so" module that can let me have SSL and what not is in Apache.
All that is needed is to tell Apache what I wanna do by editing httpd.conf .
# Implements a proxy/gateway for Apache. # 1. Open /Applications/XAMPP/etc/httpd.conf # 2. Enable the following Modules by removing the # at the front of the line. # - LoadModule rewrite_module modules/mod_rewrite.so # - LoadModule proxy_module modules/mod_proxy.so # - LoadModule proxy_http_module modules/mod_proxy_http.so # # 3. Copy and Paste below to the bottom of httpd.conf # <IfModule mod_proxy.c> ProxyRequests On <Proxy *> Order deny,allow Allow from all </Proxy> ProxyVia Off ProxyPreserveHost Off ProxyPass /home/ http://127.0.0.1:84/home/ ProxyPassReverse /home/ http://127.0.0.1:84/home/ SetEnv proxy-nokeepalive 1 # ..since we are not using "keep-alive", we are using "close" </IfModule> ...et voila
I'm using XAMPP ( https://www.apachefriends.org/download.html )
and this is my solution to avoid coding in PHP, as I feel more comfortable coding in AutoIt.
A "muli-thread or concurrency" can be done by forking the socket ( https://www.autoitscript.com/forum/topic/199177-fork-udf-ish/ )
but responses are under 20 ms., so I feel fine with a single thread.
I modified an example ( attached below ), so can try out the concept.
PS: I am not an Apache guru. I just discovered this and it opens a world of possibilities. In my case, I'm thinking of an API to query SQLite
PS2: I'm not gonna make Poll but do click like if you do
201673-json-http-post-serverlistener.au3
-