[PHP] Upload foto telegram

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • hhoekstra
  • Registratie: Maart 2008
  • Laatst online: 04-07 10:52
Eerst even een korte uitleg:

Ik heb een camera die een foto maakt bij beweging deze foto wordt op de server opgeslagen. Nu wil ik graag deze foto automatisch naar telegram versturen.

Telegram BOT Api verwacht de foto in multipart/form-data (POST). Als ik onderstaande code via de browser gebruik werkt dit ook naar behoren.


code:
1
2
3
4
5
6
7
<form action="https://api.telegram.org/bot1******/sendPhoto" method="post" enctype="multipart/form-data">

<input type='text' name = 'chat_id' value = '***'>
<input type="file" name="photo" id="fileToUpload">
    <input type="submit" value="Upload Image" name="submit">

</form>


Maar ik wil dit automatiseren. Zodra en beweging is kan ik een url opvragen. Ik wil dus dat het script automatisch een foto via een post command met "multipart/form-data" gaat versturen.

Nu kan dit volgens mij via curl maar dit is mij nog niet gelukt. Iemand ideeën hoe ik dit kan realiseren ?

Acties:
  • 0 Henk 'm!

  • orf
  • Registratie: Augustus 2005
  • Laatst online: 23:36

orf

Je topic lijkt een beetje op deze van gisteren: [PHP] Website gebruiken als API

Ongeveer het zelfde antwoord: Met een http-client is het wat makkelijker (ook al gebruikt die onder water vaak ook curl).

Guzzle is een voorbeeld. Hier een stukje documentatie over file-upload:
http://guzzle.readthedocs...start.html#uploading-data

PHP:
1
2
3
// Provide an fopen resource.
$body = fopen('/path/to/file', 'r');
$r = $client->post('http://httpbin.org/post', ['body' => $body]);

Acties:
  • +1 Henk 'm!

  • ThinkPad
  • Registratie: Juni 2005
  • Laatst online: 23:15
Kijk hier eens naar: http://domoticz.com/wiki/Telegram_Bot

Je kunt het inderdaad met één simpele CURL regel doen. Stap 5 en 6 werkten bij prima toen ik het even snel had getest (na aanmaken van token e.d. natuurlijk).

Je zou die curl regel in een Bash script (waar draait de server op?) kunnen zetten en dan in PHP aanroepen.

[ Voor 20% gewijzigd door ThinkPad op 23-07-2015 09:32 ]


Acties:
  • 0 Henk 'm!

  • hannibal2206
  • Registratie: Februari 2005
  • Laatst online: 23:30
ThinkPadd schreef op donderdag 23 juli 2015 @ 08:59:
Kijk hier eens naar: http://domoticz.com/wiki/Telegram_Bot

Je kunt het inderdaad met één simpele CURL regel doen. Stap 5 en 6 werkten bij prima toen ik het even snel had getest (na aanmaken van token e.d. natuurlijk).

Je zou die curl regel in een Bash script (waar draait de server op?) kunnen zetten en dan in PHP aanroepen.
Wat bedoel je met dat laatste "in PHP aanroepen"?
Ik ben ook nog zoekende om een foto te kunnen versturen met telegram (onder Domoticz) ..

15kW solar, 800 Ltr hygiëneboiler, 80 Heatpipes, 2 * L/L, Pana monoblock 5F en 5J, HR++/+++ , gasloos sinds Feb 2015


Acties:
  • 0 Henk 'm!

  • simon
  • Registratie: Maart 2002
  • Laatst online: 16:05
hannibal2206 schreef op dinsdag 02 augustus 2016 @ 11:59:
[...]


Wat bedoel je met dat laatste "in PHP aanroepen"?
Ik ben ook nog zoekende om een foto te kunnen versturen met telegram (onder Domoticz) ..
Zo:

http://php.net/manual/en/function.exec.php

Kun je vanuit php applicaties op je server aanroepen, maar curl kun je veel beter direct vanuit PHP aanroepen en niet verborgen in een bash script.

Voor curls documentatie vind je hier: http://php.net/manual/en/book.curl.php veel.

[ Voor 8% gewijzigd door simon op 02-08-2016 12:02 ]

|>