Rufnummernüberprüfung und SMS Versand in Python

In diesem Anwendungsbeispiel erfahren Sie, wie Sie in Python 3 Rufnummern aus einer Excel-Liste laden, überprüfen und SMS an die gültigen Rufnummern gesendet werden.

python-3

CM API's und Python- Module

Wir verwenden für dieses Beispiel den Numberlookup und die Business Messaging API. Die jeweiligen Dokumentationen finden Sie im Developers- Bereich.

Folgende Python- Module werden importiert:


import requests
import pandas as pd
from functools import partial


 

Send SMS- Funktion

Zuerst definieren wir eine Funktion, die die SMS API aufruft. An diese Funktion übergeben wir den Product-Token, Sender, die Rufnummern (msisdns), und den Nachrichtentext:


def send_SMS(token,sender,msisdns,text):
   url = 'https://gw.cmtelecom.com/v1.0/message'
   message = {
           "messages": {
                   "authentication": {
                           "producttoken": token
                           },
                           "msg": [ {
                                   "allowedChannels":["SMS"],
                                   "from": sender,
                                   "to": [{"number":msisdn} for msisdn in msisdns],
                                   "body": {
                                           "content": text
                                           }
                                   }
                                   ]
                       }
               }
   headers = {"contentType":"application/json"}
   resp = requests.post(url,json=message,headers=headers)
   return resp.json()


Als Output erhalten wir die Rückgabewerte der SMS API im JSON- Format. 

Numberlookup- Funktion zur Rufnummernüberprüfung

Als nächstes erstellen wir die Funktion für den Numberlookup. Hier wird auch wieder der Producttoken (token) und eine einzelne Rufnummer (msisdn) übergeben. Als Output erhalten wir die Rückgabewerte der Numberlookup- API im JSON- Format.

 

def numberlookup(token,msisdn):
   url = "https://api.cmtelecom.com/v1.1/numberlookup"
   headers = {"contentType":"application/json",'X-CM-PRODUCTTOKEN':token}
   body = {"phonenumber":msisdn}
   resp = requests.post(url,json=body,headers=headers)
   return resp.json()

 Formatieren und Verifizieren der Rufnummern

Zuerst laden wir die Rufnummern aus einer Excel Tabelle namens "Kontakte.xlsx" in einen pandas- Dataframe (df).


df_msisdns = pd.read_excel("Kontakte.xlsx")


Die Rufnummern befinden sich im Spaltennamen "MSISDN". Um die Nummern in das richtige Format zu bringen, wird "00" hinzugefügt.


df_msisdns["MSISDN"] = ["00"+str(x) for x in df_msisdns["MSISDN"].values]

 

Nachdem die Rufnummern nun im richtigen Format sind, lassen wir sie über unsere oben definierte Funktion überprüfen. Die Informationen, die wir über die Numberlookup- API bekommen, speichern wir in einem neuen DataFrame.


df_msisdns_verified = pd.DataFrame(list(map(partial(numberlookup,token),df_msisdns["MSISDN"].values))) 


Die Daten, die wir über die API bekommen, wurden in Spalten gespeichert.


df_msisdns_verified.columns
Out[17]:
Index(['active_number', 'carrier', 'carrier_mcc', 'carrier_mnc',
      'country_code', 'country_iso', 'format_e164', 'format_international',
      'format_national', 'ported', 'region', 'region_code', 'roaming',
      'roaming_carrier', 'roaming_country_iso', 'roaming_country_prefix',
      'roaming_mcc', 'roaming_mnc', 'timezone', 'type', 'valid_number'],
     dtype='object')

 


SMS über API versenden

Wir speichern die validen Rufnummern (valid_number=True) in eine Liste.


msisdns = list(df_msisdns_verified[df_msisdns_verified["valid_number"].values==True]["format_e164"].values)

 

Die msisdns- Liste zusammen mit unserem Product-Token (token), dem Sender und dem Nachrichtentext übergeben wir der Funktion "send_SMS".


sms_resp = send_SMS(token,"test",msisdns,"Das ist eine Test SMS")

 

Die Ausgabe, die wir in der Variablen "sms_resp" gespeichert haben, zeigt uns, dass die Nachrichten erfolgreich versendet wurden.


sms_resp
Out[19]:
{'details': 'Created 1 message(s)',
 'errorCode': 0,
 'messages': [{'to': '00491712669443',
  'status': 'Accepted',
  'reference': None,
  'parts': 1,
  'messageDetails': None,
  'messageErrorCode': 0}]}

 

Dieses Beispiel sollte veranschaulichen, wie Sie die API's in Python verwenden können, um Rufnummern zu überprüfen und SMS zu versenden.

Erfahren Sie mehr über CM's Communication API's

zu den Dokumentationen
zu den Dokumentationen

Choose a different country or region if you want to see the content for your location.

Go