首页 > 解决方案 > 如何在php中制作一个php函数来POST API

问题描述

我想获得电报频道的消息,为此我找到了madeline proto

但是,不幸的是,我没有使用 php,所以我想用 php 中的 POST API 来实现这个函数,以便在 java 中通过 POST API 获取。

我的问题是如何?任何人都可以给我参考或代码。

<?php
if (!file_exists('madeline.php')) {
    copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
}
include 'madeline.php';

$MadelineProto = new \danog\MadelineProto\API('session.madeline');
$MadelineProto->start();

// Execute for an unlimited time span
set_time_limit(0);

$channel = '@achannel';

while (true) {
    $messages_Messages = $MadelineProto->messages->getHistory(
        ['peer' => $channel,
        'offset_id' => 0,
            'offset_date' => 0,
            'add_offset' => 0,
            'limit' => 0,
            'max_id' => 0,
            'min_id' => 0,
            'hash' => 0 ]);


    $i = 0;
    foreach ($messages_Messages['messages'] as $message) {
        $m = " id: " . $message['id'] . " message: " . @$message['message'] . "%n%";
        #$data = array_push($data, $m);
        #echo $m;
        $i++;
        if($i < 5){
            break;
        }
    }
}

标签: phppost

解决方案


你可以用 curl 像这样发布,

function post($url, $data)
{
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST,FALSE);
    curl_setopt($curl, CURLOPT_POST, 1);
    curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl, CURLOPT_HTTPHEADER,["Contenttype:application/json;charset='utf-8'","Accept:application/json"]);

    $output = curl_exec($curl);
    curl_close($curl);

    return $output;
}

推荐阅读