2015-07-01 7 views
6

क्या छवियों को प्राप्त करना संभव है (और इसे सर्वर पर स्टोर करें) जिसे किसी भी उपयोगकर्ता द्वारा बॉट में भेजा गया था?टेलीग्राम एपीआई के साथ छवियों को कैसे प्राप्त करें?

यदि कोई छवि भेजी गई थी, तो मुझे यह JSON पोस्ट प्राप्त होता है। यह टेलीग्राम बॉट-एपीआई विवरण का एक लिंक है। getFile साथ अब https://core.telegram.org/bots/api#available-types

{"update_id":XXXXX, 
"message":{"message_id":2222,"from":{"id":XXXXX,"first_name":"Christoph","last_name":"XXXXX"},"chat":{"id":XXXXX,"first_name":"Christoph","last_name":"XXXXX"},"date":1435704055,"forward_from":{"id":XXXXX,"first_name":"Christoph","last_name":"XXXXX"},"forward_date":1435703471,"photo":[{"file_id":"AgADAgADmaoxG9KknwF4O978o3EMqb_EWSoABI5s-WWq46dqiR0AAgI","file_size":998,"width":51,"height":90},{"file_id":"AgADAgADmaoxG9KknwF4O978o3EMqb_EWSoABHax4HvxYqktiB0AAgI","file_size":9912,"width":180,"height":320},{"file_id":"AgADAgADmaoxG9KknwF4O978o3EMqb_EWSoABNzzDwp3sT2whx0AAgI","file_size":41020,"width":450,"height":800},{"file_id":"AgADAgADmaoxG9KknwF4O978o3EMqb_EWSoABE0Gg-AefJ7Yhh0AAgI","file_size":66058,"width":720,"height":1280}]}} 
+1

अपने PHP कोड कहां है? –

+0

इस समय मेरे पास कुछ भी नहीं है, क्योंकि मुझे नहीं पता कि इस मामले में क्या करना है। अब, केवल टेलीग्राम वेबहूक-कॉल की सामग्री को मेरी स्क्रिप्ट पर संग्रहीत करें। –

+1

मान लें कि हम टेलीग्राम एपीआई नहीं जानते हैं, और जो हो रहा है उसके माध्यम से हमें चलते हैं। क्या जेएसओएन टेलीग्राम से एक उत्तर संदेश है? यह कुछ 'file_id' कोडों का संदर्भ देता है - वे कहां संग्रहीत हैं? क्या उन्हें लाने के लिए कोई एपीआई कॉल है? – halfer

उत्तर

2

:

आप इसे API दस्तावेज़ों में देख सकते हैं मैं अगर यह पूरी छवि या नहीं प्राप्त करना संभव है पता नहीं है टेलीग्राम सर्वर से छवि डाउनलोड करना संभव है। यह करें:
1. getFile एपीआई का उपयोग कर फ़ाइल प्राप्त करें

//Telegram link 
    $telegram_link = 'https://api.telegram.org/bot' . $this->tg_configs['api_key'] . '/getFile?file_id=' . $photo['file_id']; 
  1. फ़ाइल पथ जाओ

    // guzzle बनाएं ग्राहक $ guzzle_client = नई GuzzleClient();

    //Call telegram 
    $request = $guzzle_client->get($telegram_link); 
    //Decode json 
    $json_response = json_decode($request->getBody(), true); 
    if ($json_response['ok'] == 'true') { 
    
         //Telegram file link 
        $telegram_file_link = 'https://api.telegram.org/file/bot' . $this->tg_configs['api_key'] . '/' . $json_response['result']['file_path']; 
    
  2. पीएचपी उपयोग Intervention/Image का उपयोग कर छवि डाउनलोड करने और अपने सर्वर पर बचाने के लिए है।

    // अपलोड पथ $ upload_path = public_path() बनाएं। \ Config :: प्राप्त ('मीडिया :: media.uploadPath'); // छवि प्राप्त करें $ छवि = $ थंबनेल = हस्तक्षेप छवि :: बनाना ($ telegram_file_link);

    //Get mime 
        $mime = $image->mime(); 
    
        if ($mime == 'image/jpeg') { 
         $extension = '.jpg'; 
        } elseif ($mime == 'image/png') { 
         $extension = '.png'; 
        } elseif ($mime == 'image/gif') { 
         $extension = '.gif'; 
        } else { 
         $extension = ''; 
        }//E# if else statement 
        //Resize images 
        $image->resize(\Config::get('media::media.mainWidth'), \Config::get('media::media.mainHeight')); 
        $thumbnail->resize(\Config::get('media::media.thumbnailWidth'), \Config::get('media::media.thumbnailHeight')); 
    
        //Build media name 
        $media_name = \Str::random(\Config::get('media::media.mediaNameLength')) . $extension; 
    
        //Save images 
        $image->save($upload_path . '/' . $media_name); 
        $thumbnail->save($upload_path . '/thumbnails/' . $media_name); 
    
संबंधित मुद्दे