Receive Media Messages

Overview

This guide covers how to receive WhatsApp media messages when a user sends it to your registered phone number.

Prerequisites

To get started, you need a Plivo account — sign up with your work email address if you don’t have one already. If this is your first time using Plivo APIs, follow our instructions to set up a Python development environment.

You must have an onboarded WhatsApp account to receive inbound messages. If a number is listed as

connected

, it can receive inbound messages.

Create a Flask application to receive messages.

Create a file called receive_whatsapp.py and paste into it this code.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
from flask import Flask, request

app = Flask(__name__)

@app.route('/receive_whatsapp/', methods=['GET', 'POST'])
def inbound_sms():

    from_number = request.values.get('From')
    to_number = request.values.get('To')
    media = request.values.get('Media1')
    print('Message received - From: %s, To: %s, Text: %s' %(from_number, to_number, media))

    return 'Message Recevived'

if __name__ == '__main__':
    app.run(host='0.0.0.0', debug=True)

Configure a webhook URL in your WhatsApp Business Account

Add or update a webhook URL from this link to a WhatsApp Business Account. Once you’ve done this, you should be able to receive inbound messages.

Test

Send a WhatsApp message to the Plivo number you specified using WhatsApp application.