Coder Social home page Coder Social logo

Comments (20)

Kalebu avatar Kalebu commented on August 17, 2024

Hi @sumitgsh, That feature is not supported yet, however, there is a way to do that and I was having an issue with the integration which thus why I didn't include it at all in the library.

You will need to upload your media(image, video, sticker) to WhatsApp Cloud API, and then it will give you a media ID which you will then use it on existing methods as they already support sending media given media id.

Here is a link to the official documentation https://developers.facebook.com/docs/whatsapp/cloud-api/reference/media#

I have included a new method upload_media to mimic the curl command in the documentation but I'm facing this weird error that messaging_product is missing in my query.

2022-08-30 20:30:40,541 - root - INFO - Uploading media imagee.jpg
2022-08-30 20:30:41,457 - root - INFO - Error uploading media imagee.jpg
2022-08-30 20:30:41,457 - root - INFO - Status code: 400
2022-08-30 20:30:41,457 - root - INFO - Response: {'error': {'message': '(#100) The parameter messaging_product is required.', 'type': 'OAuthException', 'code': 100, 'fbtrace_id': 'AbSnMtWM4sUKWLq43Q62TfF'}

There is another fellow developer who looks like was able to successfully do that but in PHP, have a look at it, and maybe you could help to make the upload_media() method get work in python.

Let me know if you need any further clarification

Thank you

from heyoo.

sumitgsh avatar sumitgsh commented on August 17, 2024

@Kalebu I tried to test the upload_media method by just cloning it ,was able to successfully generate the id of the image.

The id looks like {'id': '7512727592XXXX'}
After that used the same Id as a parameter to `send_image' method end yeah file got shared.

So probably might me a case with token or the file's absolute location..

Was not able to recreate the issue that you mentioned ..

 2022-08-30 20:30:40,541 - root - INFO - Uploading media imagee.jpg
2022-08-30 20:30:41,457 - root - INFO - Error uploading media imagee.jpg
2022-08-30 20:30:41,457 - root - INFO - Status code: 400
2022-08-30 20:30:41,457 - root - INFO - Response: {'error': {'message': '(#100) The parameter messaging_product is required.', 'type': 'OAuthException', 'code': 100, 'fbtrace_id': 'AbSnMtWM4sUKWLq43Q62TfF'}

from heyoo.

Kalebu avatar Kalebu commented on August 17, 2024

This is interesting @sumitgsh because I tried thousands of times but it kept raising that exception

I updated the upload_media to get the full path of the file before loading automatically but still didn't work

Guess this is more of something to do with my account rather than WhatsApp Cloud API

Won't you mind sharing the snippet of code your ran and a bit of file structure?

from heyoo.

sumitgsh avatar sumitgsh commented on August 17, 2024

yes sure @Kalebu ,end Sry for the late reply.

Here is the sample code that I tested.

base_url = "https://graph.facebook.com/v14.0"

# File structure  
media="D:/dir-1/dir-2/dockre.png"

phone_number_id="101791896XXXXXX"
token=' XXXXXXX'

headers = {
            "Content-Type": "application/json",
            "Authorization": "Bearer {}".format(token),
        }
form_data = {
            "file": (media, open(media, "rb"), mimetypes.guess_type(media)[0]),
            "messaging_product": "whatsapp",
            "type": mimetypes.guess_type(media)[0],
        }

form_data = MultipartEncoder(fields=form_data)
headers =  headers.copy()
headers["Content-Type"] = form_data.content_type
       
r = requests.post(f"{base_url}/{phone_number_id}/media",headers=headers,data=form_data,)
if r.status_code == 200:
    print (r.json())

The above code is successfully generating the Image ID i.e {'id': '7512727592XXXX'} and the snippet is same as the upload_media method , So yes As u mentioned There might be a Problem with the account.

End I would love to contribute and be part of the repository and the cause as well..:)

from heyoo.

umerghayaz avatar umerghayaz commented on August 17, 2024

I cannot send image through this method

from heyoo.

Kalebu avatar Kalebu commented on August 17, 2024

Hi @umerghayaz Can you share the exact error messages you're encountering so that we can better understand your situation ?

from heyoo.

umerghayaz avatar umerghayaz commented on August 17, 2024

import requests
import json
media="C:/PYTHON/Python3.8/Scripts/office_work/Capture001.png"

print(media)

caption='JJJ'
PHONE_ID = ""
TOKEN = ""
NUMBER = ""
MESSAGE = "hello"

URL = "https://graph.facebook.com/v15.0/"+PHONE_ID+"/media"
headers = {
"Authorization": "Bearer "+TOKEN,
"Content-Type": "application/json"
}
data = {
"messaging_product": "whatsapp",
"to": NUMBER,
"type": "image/png",
"file":media ,

}
response = requests.post(URL, headers=headers, data=data)
response_json = response.json()
print(response_json)
my error
{'error': {'message': 'An unknown error has occurred.', 'type': 'OAuthException', 'code': 1, 'fbtrace_id': 'AUxIoQ-SmKUe9d-jbEHpph_'}}

from heyoo.

umerghayaz avatar umerghayaz commented on August 17, 2024

media_id = whatsapp.upload_media(
media='',
)
messenger.send_image(
image=media_id,
recipient_id="",
link=False
)
my error
2022-11-12 14:13:53,853 - root - INFO - Content-Type: multipart/form-data; boundary=417ee1c9e953485f9d22bb9506e3efb2
2022-11-12 14:13:53,855 - root - INFO - Uploading media C:/PYTHON/Python3.8/Scripts/office_work/Capture001.png
2022-11-12 14:13:54,498 - root - INFO - Error uploading media C:/PYTHON/Python3.8/Scripts/office_work/Capture001.png
2022-11-12 14:13:54,503 - root - INFO - Status code: 400
2022-11-12 14:13:54,506 - root - INFO - Response: {'error': {'message': '(#100) The parameter messaging_product is required.', 'type': 'OAuthException', 'code': 100, 'fbtrace_id': 'ABvV0tOV9sTGWiPbzVwpk_T'}}
2022-11-12 14:13:54,912 - root - INFO - Status code: 400
2022-11-12 14:13:54,915 - root - ERROR - {'error': {'message': '(#100) Either one of media ID or link must be present', 'type': 'OAuthException', 'code': 100, 'error_subcode': 2494009, 'fbtrace_id': 'AMSJJxy83UQuXmoWSsFG8jN'}}

from heyoo.

Kalebu avatar Kalebu commented on August 17, 2024

Hi @umerghayaz

Here that's where I am confused because it didn't work for me either, I was having that issue that messaging_product was missing while its present, and then came @sumitgsh and told me it worked for me so I thought it was more of a personal account issue but here you comes and experiencing the same issue I was encountering so I guess it still an open issue to be fixed

Hey @soerenetler Does this work for you ?

from heyoo.

rinab301 avatar rinab301 commented on August 17, 2024

2022-12-20 08:35:40,109 - root - INFO - Error uploading media final.png
2022-12-20 08:35:40,109 - root - INFO - Status code: 400
2022-12-20 08:35:40,109 - root - INFO - Response: {'error': {'message': '(#100) The parameter messaging_product is required.', 'type': 'OAuthException', 'code': 100, 'fbtrace_id': 'ApwyF_hzAPhT6qusNDUNeHG'}}

Hi. I have the same issue.
@Kalebu can you please help?
please reach me in mail [email protected]
thank you

from heyoo.

rinab301 avatar rinab301 commented on August 17, 2024

I fixed it:
in def upload media do:
header=header (not self.header).
the problem is that self.headers really missing messaging product

from heyoo.

Kalebu avatar Kalebu commented on August 17, 2024

I fixed it: in def upload media do: header=header (not self.header). the problem is that self.headers really missing messaging product

Great Rina, Thanks so much for spotting it

I've already added to the main source code, Will be added to the next release

from heyoo.

umerghayaz avatar umerghayaz commented on August 17, 2024

I have tried again and facing the same issue.{'error': {'message': '(#100) Either one of media ID or link must be present', 'type': 'OAuthException', 'code': 100, 'error_subcode': 2494009, 'fbtrace_id': 'AZdGMJW8CW5YtLy2dEr0k3e'}}
@kale and @rinab301 please tell how you have solved the problem. I have updated the library but still I am facing this issue.
thanks

from heyoo.

rinab301 avatar rinab301 commented on August 17, 2024

@umerghayaz its another error. the local file you are sending is jpeg?

from heyoo.

umerghayaz avatar umerghayaz commented on August 17, 2024

can you please tell me how to locally send pictures and documents

from heyoo.

umerghayaz avatar umerghayaz commented on August 17, 2024

yes I am sending jpeg file

from heyoo.

Kalebu avatar Kalebu commented on August 17, 2024

I have tried again and facing the same issue.{'error': {'message': '(#100) Either one of media ID or link must be present', 'type': 'OAuthException', 'code': 100, 'error_subcode': 2494009, 'fbtrace_id': 'AZdGMJW8CW5YtLy2dEr0k3e'}} @kale and @rinab301 please tell how you have solved the problem. I have updated the library but still I am facing this issue. thanks

Does the Error Message show that you neither attached the link nor media_id, can you please log the response from upload_media function ?

from heyoo.

umerghayaz avatar umerghayaz commented on August 17, 2024

MY FULL CODE AND LOG:
CODE:
media_id = messenger.upload_media(
media='C:/Users/IT/PycharmProjects/whatsapptry/static/images/1.jpeg',
)
messenger.send_image(
image=media_id,
recipient_id="",

)

ERROR:
2022-12-29 14:19:22,961 - root - INFO - Content-Type: multipart/form-data; boundary=1ee1a0d5ca524dc0b3042e06cbca6403
2022-12-29 14:19:22,962 - root - INFO - Uploading media C:/Users/IT/PycharmProjects/whatsapptry/static/images/1.jpeg
2022-12-29 14:19:26,924 - root - INFO - Media C:/Users/IT/PycharmProjects/whatsapptry/static/images/1.jpeg uploaded
2022-12-29 14:19:26,925 - root - INFO - Sending image to 923462901820
2022-12-29 14:19:26,925 - root - INFO - Sending document to {'id': '881430619716409'}
2022-12-29 14:19:28,223 - root - INFO - Image not sent to 923462901820
2022-12-29 14:19:28,223 - root - INFO - Status code: 400
2022-12-29 14:19:28,223 - root - ERROR - {'error': {'message': "(#100) Param image['link'] is not a valid URI.", 'type': 'OAuthException', 'code': 100, 'fbtrace_id': 'Ahcu1JsU5WSP9j1hDQB0QFa'}}

from heyoo.

umerghayaz avatar umerghayaz commented on August 17, 2024

it is working I forgot to add link = false

from heyoo.

Kalebu avatar Kalebu commented on August 17, 2024

it is working I forgot to add link = false

Great, Thank you all for raising the issue and bringing ideas to fix it @umerghayaz @rinab301 @sumitgsh

I will now close this issue

from heyoo.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.