Access - Ερωτήσεις / Απαντήσεις Access + VBA... Εδώ δεν υπάρχουν όρια! |
| Εργαλεία Θεμάτων | Τρόποι εμφάνισης |
#1
| |||
| |||
SMS API απο .Net σε VBA
Φίλοι μου γειά σας, Πιστεύω ότι το θέμα μου απασχολεί πάρα πολλούς σχεδιαστές εφαρμογών και εάν και εφόσον βρούμε κάποια λύση αυτό θα βοηθήσει όλους. Απο κάποιο provider μου έχει σταλεί ένας κώδικας .Net μέσω του οποίου μπορει κάποιος εφόσον δημιουργήσει λογαριασμό στην εν λόγο υπηρεσία να στέλνει μαζικά ή ένα-προς ένα αυτόματα SMS μεσω της Access. Προσπάθησα να προσαρμόσω τον κώδικα για να δουλέυει σε VBA αλλά κάπου έχω κολλήσει....Επισυνάπτω την βάση μου και θα εκτιμήσω εάν κάποιος μπορέσει να με βοηθήσει για να δημιουργήσουμε μια λειτουργική μονάδα σε VBA για να μπορεί τελικά να λειτουργεί. Ευχαριστω εκ προτέρων Παραθέτω επίσης αυτούσιο τον κωδικα ίσως και φανεί χρήσιμο Dear George I am sending you the api manual as well as a piece of vb code ‘’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’ Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Dim usr, psw, mobnu, title, message As String usr = HttpUtility.UrlEncode("email@email.com") psw = HttpUtility.UrlEncode("7fhd8y8erwe") mobnu = HttpUtility.UrlEncode("35799999999") title = HttpUtility.UrlEncode("Amlex") message = HttpUtility.UrlEncode("Test API") send_sms("http://api.microsms.net/sendapidirect.asp?usr=" & usr & "&psw=" & psw & "&dtype=1&title=" & title & "&mobnu=" & mobnu & "&message=" & message) End Sub Public Shared Function send_sms(pass_url As String) Dim strurl As String strurl = pass_url Dim rtnvalue As String Try Dim s As HttpWebRequest Dim enc As UTF8Encoding Dim postdata As String Dim postdatabytes As Byte() s = HttpWebRequest.Create(strurl) enc = New System.Text.UTF8Encoding() Dim connection_guid, api_guid As String connection_guid = System.Guid.NewGuid.ToString() api_guid = "xxx_guid" postdata = postdata & "&api_guid=" & api_guid postdata = postdata & "&connection_guid=" & connection_guid postdatabytes = enc.GetBytes(postdata) s.Method = "POST" s.ContentType = "application/x-www-form-urlencoded" s.ContentLength = postdatabytes.Length Try Using stream = s.GetRequestStream() stream.Write(postdatabytes, 0, postdatabytes.Length) End Using '' Dim result = s.GetResponse() Dim httpWebResponse As System.Net.HttpWebResponse = s.GetResponse() If httpWebResponse.StatusCode = System.Net.HttpStatusCode.OK Then Dim responseReader As System.IO.StreamReader = New System.IO.StreamReader(httpWebResponse.GetResponse Stream()) rtnvalue = responseReader.ReadToEnd() Else rtnvalue = "no return" End If Catch ex As Exception rtnvalue = ex.ToString '' Log_error("Err0663", "error in 'sendsmsmessage()' " & strurl, ex.Message.ToString(), "", "") End Try Catch ex As Exception '' Log_error("Err0664", "error in 'sendsmsmessage()' " & strurl, ex.Message.ToString(), "", "") End Try Return rtnvalue End Function ‘’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’ |
#2
| |||
| |||
Καλησπέρα Γιώργο, Χρόνια Πολλά, καλή Ανάσταση με υγεία και Ευτυχία. Δες μια πρόταση. Ευχαριστώ. |
#3
| |||
| |||
Παράθεση:
Θα κοιτάξω την βάση και αν υπάρχει κάποιο θεμα θα επανέλθω. Ευχομαι και ελπίζω μέσα σε όλο αυτό τον κυκεώνα να εισαι καλά εσυ και η οικογένεια σου.. Καλό Πάσχα (με ότι αυτό συνεπάγεται) |
#4
| |||
| |||
Γιώργο καλησπέρα πάλι, Έχω κοιτάξει το παράδειγμα και δουλεύει μια χαρά, αφου εχω βαλει τους σχετικοϋς κωδικοϋς απο τον παροχέα. Ωστόσο, δουλεύει για αποστολή ενός μηνύματος καθε φορά. Το ιδανικό θα ήταν εάν απο τον πίνακα Patients παίρνει τα κινητά απευθείας και με Loop να στέλνει σε όλους αυτόματα το μήνυμα, αυτό είναι εφικτό? Ευχαριστω πάλι και εκτιμω την βοήθεια |
#5
| |||
| |||
Καλημέρα Γιώργο, Δες μια πρόταση. Καλό θα ήταν να κάνεις και έλεγχο αν ο αριθμός τηλεφώνου είναι σωστός σε μορφή και μήκος και αν έχεις περιορισμό στο μέγεθος του sms. Να προσέξεις και τις τιμές που σου επιστρέφει το service. Ευχαριστώ. |
#6
| |||
| |||
Καλησπέρα Γιώργο αλλά και σε όλους τους φίλους, Γιώργο το παράδειγμα δουλεϋει μόνο που εφόσον σταλεί το μήνυμα στα κινητά, δεν εμφανίζονται οι χαρακτήρες (λέξεις, προτάσεις κλπ) παρά μόνο εμφανίζονται ερωτηματικά συνεχόμενα (??????). Ψάχνωντας να λύσω το πρόβλημα κατόρθωσα και μίλησα με κάποιο τεχνικό της υπηρεσίας και μου εξήγησε οτι το μηνυμα πρέπει να αποστέλνεται σε UTF8 encoding... Παραθέτω και ενα μικρό παράδειγμα ενος αρχείου που μου δόθηκε Παράδειγμα: Ελληνικά, απλό sms Για να στείλουμε sms με ελληνικούς χαρακτήρες ακολουθείται η εξής διαδικασία πριν καλέσουμε το παραπάνω url, προκειμένου να μετατρέψουμε τους χαρακτήρες σε 7bit encoding : $text = mb_convert_case($text, MB_CASE_UPPER, "UTF-8"); //μετατρέπουμε όλο το κείμενο σε κεφαλαία $text = urlencode($text); //κωδικοποίηση χαρακτήρων σε url encoding $text = to7bit($text); // εφαρμόζουμε την παρακάτω συνάρτηση function to7bit($text){ $text = str_replace('%CE%91', 'A', $text ); $text = str_replace('%CE%86', 'A', $text ); // Ά $text = str_replace('%CE%92', 'B', $text ); $text = str_replace('%CE%93', '%13', $text ); // Γ $text = str_replace('%CE%94', '%10', $text ); // Δ $text = str_replace('%CE%95', 'E', $text ); $text = str_replace('%CE%88', 'E', $text ); // Έ $text = str_replace('%CE%96', 'Z', $text ); $text = str_replace('%CE%97', 'H', $text ); $text = str_replace('%CE%89', 'H', $text ); $text = str_replace('%CE%98', '%19', $text ); // Θ $text = str_replace('%CE%99', 'I', $text ); $text = str_replace('%CE%8A', 'I', $text ); $text = str_replace('%CE%AA', 'I', $text ); // Ϊ $text = str_replace('%CE%90', 'I', $text );// ΐ $text = str_replace('%CE%9A', 'K', $text ); 9 www.smsbox.gr HTTP API v1.7 $text = str_replace('%CE%9B', '%14', $text ); // Λ $text = str_replace('%CE%9C', 'M', $text ); $text = str_replace('%CE%9D', 'N', $text ); $text = str_replace('%CE%9E', '%1A', $text );// Ξ $text = str_replace('%CE%9F', 'O', $text ); $text = str_replace('%CE%8C', 'O', $text ); // Ό $text = str_replace('%CE%A0', '%16', $text ); // Π $text = str_replace('%CE%A1', 'P', $text ); $text = str_replace('%CE%A3', '%18', $text ); // Σ $text = str_replace('%CE%A4', 'T', $text ); $text = str_replace('%CE%A5', 'Y', $text ); $text = str_replace('%CE%8E', 'Y', $text ); $text = str_replace('%CE%AB', 'Y', $text ); // Ϋ $text = str_replace('%CE%B0', 'Y', $text ); // ΰ $text = str_replace('%CE%A6', '%12', $text ); // Φ $text = str_replace('%CE%A7', 'X', $text ); $text = str_replace('%CE%A8', '%17', $text ); $text = str_replace('%CE%A9', '%15', $text ); // Ω $text = str_replace('%CE%8F', '%15', $text ); // Ώ $text = str_replace('%E2%82%AC', '%80', $text ); // € return $text; Για να στείλουμε sms με ελληνικούς χαρακτήρες, υπάρχει και πιό απλός τρόπος με τη χρήση της παραμέτρου coding=UTF8 κατά την κλήση*: $from = urlencode("smsboxt"); $text = urlencode("για να δούμε ένα... παράδειγμα με τον απλό τρόπο"); $fp = fopen('http://www.smsbox.gr/httpapi/sendsms.php? coding=UTF8&username=xxx&password=xxx&from='. $from.'&to=306947992777&text='.$text, 'r'); $content = ''; while ($line = fread($fp, 1024)) { $content .= $line; } fclose($fp); *Για να λειτουργήσει σωστά η κλίση με coding=UTF8, θα πρέπει το file encoding του αρχείου php να είναι UTF-8. |
#7
| |||
| |||
Καλημέρα σε όλους. Για δες τώρα. Ευχαριστώ. |
#8
| |||
| |||
Καλημέρα Γιωργο, ευχαριστω για την προσπαθεια να με βοηθησεις και για τον χρόνο σου, Δυστυχως ομως δεν επιλυθηκε το θεμα..Παλι λαμβανω ερωτη,ατικα στο κινητο....Εχω δοκιμασει και να διαφοροποιησω τη γραμμη του message=UCase(message) δηλααδη δοκιμασα μηπως και το προβλημα ειναι τα κεφαλαια κλπ, αλλα δυστυχως τα ιδια.. Θα μιλησω και σημερα με τον παροχεα να δω αν ειναι κατι αλλο.. Σε καθε περιπτωση σε ευχαριστω και ευχομαι Καλο Πάσχα σε εσενα και στην οικογένεια σου αλλα και σε όλους τους φίλους του φόρουμ |
#9
| ||||
| ||||
Καλημέρα και Χρόνια πολλά σε όλους! Δεν θα χρειαστεί κωδικοποίηση UTF-8 επειδή δεν αποστέλλεται κάποιο περιεχόμενο. Λαμβάνοντας υπ' όψη ότι τα δεδομένα SMS εμπεριέχονται στη διεύθυνση (URL) και ότι ο διακομιστής SMS δεν μπορεί να τα διαχειριστεί τους χαρακτήρες Unicode ως απλό κείμενο , αυτό που πρέπει να γίνει είναι η κωδικοποίηση (Percent-decoding) των τμημάτων "title" και "message" ώστε να υπάρξει συμβατότητα στην αποκωδικοποίηση. Προτείνω τα εξής: Προσθήκη αναφορών :Microsoft Object HTML Library και Microsoft WinHTTP Services, Version x,x Προσθήκη του παρακάτω κώδικα σε μια φόρμα: Κώδικας: Option Explicit Option Compare Database Private Function EncodeURL(strText As Variant) Dim oDoc As New HTMLDocument With oDoc.parentWindow .execScript "function encode(s) {return encodeURIComponent(s)}", "jscript" EncodeURL = .encode(strText) End With Set oDoc = Nothing End Function Public Function SendSMS(strUrl As String) As String Dim oweb As New WinHttp.WinHttpRequest oweb.Open "POST", strUrl, False oweb.send SendSMS = oweb.responseText Set oweb = Nothing End Function Private Sub BtnSendSMS_Click() Dim usr As String Dim psw As String Dim mobnu As String Dim title As String Dim message As String Dim strResult As String usr = "email@email.com" psw = "7fhd8y8erwe" mobnu = "35799999999" title = "Amlex" message = "Κάτι γραμμένο στα ελληνικά για δοκιμή" strResult = SendSMS( _ "http://api.microsms.net/sendapidirect.asp?usr=" _ & usr & "&psw=" & psw & "&dtype=1&title=" & EncodeURL(title) & _ "&mobnu=" & mobnu & "&message=" & EncodeURL(message)) MsgBox strResult, vbInformation, "SMS Result" End Sub Τάσος
__________________ Ms-Office Development Team Ανάπτυξη επαγγελματικών εφαρμογών Τελευταία επεξεργασία από το χρήστη Tasos : 18-04-20 στις 13:01. |
#10
| |||
| |||
Καλήμερα σας, Τάσο είσαι άψογος και πάντα σαφέστατος. Καλή Ανάσταση σε όλους με υγειά και ευτυχία. Ευχαριστώ. |
« Προηγούμενο Θέμα
|
Επόμενο Θέμα »
| |
Η ώρα είναι 20:27.