emilh91/groupme-api-client

GroupMe API 客户端

2.1.1 2023-08-20 22:02 UTC

This package is auto-updated.

Last update: 2024-09-21 00:19:23 UTC


README

此库是非官方的 PHP 包装器,用于 GroupMe v3 API。

安装

使用 Composer 安装: "emilh91/groupme-api-client": "dev-master"

样板代码

登录后,您可以在上述页面找到 GroupMe API 密钥。如果您只计划使用此库来发送机器人消息,则无需指定 API 密钥。

require 'vendor/autoload.php';
$c = new GroupMeApi\Client('API-KEY');

客户端方法

以下子部分中的所有方法都应该在新建的客户端对象上调用。

机器人方法
public function getMyBots()
public function createBot($bot_name, $group_id, $avatar_url='', $callback_url='')
public function sendBotMessage($bot_id, $text, array $attachments=array())
public function parseBotMessage($bot_id, $text)
public function destroyBot($bot_id)
直接消息方法
public function getDirectMessageChats($page=1, $per_page=10)
public function getLatestDirectMessages($other_user_id, $limit=20)
public function getDirectMessagesBefore($other_user_id, $message_id)
public function getDirectMessagesSince($other_user_id, $message_id)
public function sendDirectMessage($other_user_id, $text, array $attachments=array(), $source_guid=null)
public function parseDirectMessage($other_user_id, $text, $source_guid=null)
public function likeDirectMessage($other_user_id, $message_id)
public function unlikeDirectMessage($other_user_id, $message_id)
群组方法
public function getAllGroups()
public function getGroups($page = 1, $per_page = 10)
public function getGroupByName($name)
public function getGroupById($group_id)
public function getFormerGroups()
public function createGroup($name, $description='', $image_url='', $share=false)
public function getGroupDetails($group)
public function updateGroupDetails($group_id, array $payload)
public function destroyGroup($group_id)
public function joinGroup($group_id, $share_token)
public function rejoinGroup($group_id)
public function getLeaderboard($group_id, $period='day')
public function getLeaderboardForDay($group_id)
public function getLeaderboardForWeek($group_id)
public function getLeaderboardForMonth($group_id)
public function getMyLikes($group_id)
public function getMyHits($group_id)
public function addMembersToGroup($group_id, array $members)
public function getAddMembersToGroupResult($group_id, $results_id)
public function getGroupMembers($group_id)
public function updateMyGroupMembership($group_id, $nickname)
public function removeGroupMember($group_id, $user_id)
public function getLatestGroupMessages($group_id, $limit=20)
public function getGroupMessagesBefore($group_id, $message_id, $limit=20)
public function getGroupMessagesAfter($group_id, $message_id, $limit=20)
public function getGroupMessagesSince($group_id, $message_id, $limit=20)
public function getGroupNameById($group_id)
public function getGroupIdByName($group_name)
public function isMemberOfGroup($group_id)
public function sendGroupMessage($group_id, $text, array $attachments=array(), $source_guid=null)
public function parseGroupMessage($group_id, $text, $source_guid=null)
用户方法
public function getMyDetails()
public function updateMyDetails(array $payload)
public function enableSmsMode($duration, $registration_id)
public function disableSmsMode()

附件

当发送消息(机器人、直接或群组)时,您可以指定附件数组。存在一个工厂类,可以轻松创建附件:GroupMeApi\AttachmentUtils

public static function makeLocationAttachment($lat, $lng, $name='')
public static function makeImageAttachment($image_url)
public static function makeMentionsAttachment($users, $strpos)
public static function makeSplitAttachment()
public static function makeEmojiAttachment(array $charmap)

表情符号

啊哈,现代沟通的巅峰... 要在 GroupMe 中发送表情符号,您需要在创建附件时指定字符表(字符映射)。为此,还存在另一个工厂类:GroupMeApi\EmojiUtils 要发送不涉及字符表和占位符的表情符号,只需在行内编写它们,并使用 parse*Message(...) 方法发送。

require 'vendor/autoload.php';
$c = new GroupMeApi\Client('API-KEY');
$c->parseBotMessage('BOT-ID', 'Awaiting instructions... :frustrated_face:');
$c->parseDirectMessage('OTHER-USER-ID', 'Hello :cool_guy_face::cigar_face:');
$c->parseGroupMessage('GROUP-ID', 'Hello everyone! :smiley_face::content_face:');

图像服务

在使用消息中的本地图像之前,您必须将图像上传到 GroupMe 的图像服务。

require 'vendor/autoload.php';
$c = new GroupMeApi\Client('API-KEY');
$res = $c->uploadImage('my_image_file.png', 'image/png', 'testpic');

如果上传成功,则返回变量包含图像 URL 在 $res['payload']['url'] 或错误消息在 $res['error'][]。感谢用户 rgaida 修复图像服务!