php - 如何在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;
}
}
}
解决方案
你可以用 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;
}
推荐阅读
- javascript - 仅接受来自一个 div 的字段值的值来自多个 div 的字段值
- python - 我应该如何更改随机输入以启用绝对随机化?
- javascript - 仅替换字符串单词中的几个字符
- php - php curl 无法连接到 xxx 端口 5001:连接被拒绝
- ios - 父 View 中的状态更改创建子 ViewModel 的新实例
- laravel - vue中没有定义属性或方法
- docker - Docker 推送到 Google Cloud Registry——对 HTTPS 服务器的 HTTP 请求
- integromat - Integromat 应用程序中的 JSON-RPC 协议
- wpf - 将参数传递给数据触发器值的样式(在 WPF 中)
- java - 使 PreferenceFragmentCompat 设置屏幕加载更快(导航 UI)