Feishu/Lark Open API Go Sdk, Support ALL Open API and Event Callback.

Overview

lark

codecov go report card test status Apache-2.0 license Go.Dev reference

中文版 README

Feishu/Lark Open API Go Sdk, Support ALL Open API and Event Callback.

Created By Code Generation.

Install

go get github.com/chyroc/lark

Docs

https://godoc.org/github.com/chyroc/lark

Support APIs

API Count: 130, Event Count: 25

Click This to See ALL
  • Contact
    • CreateUser
    • DeleteUser
    • GetUser
    • GetUserList
    • UpdateUserPatch
    • UpdateUser
    • CreateDepartment
    • GetDepartment
    • GetDepartmentList
    • GetParentDepartment
    • SearchDepartment
    • UpdateDepartmentPatch
    • UpdateDepartment
    • DeleteDepartment
  • Message
    • SendRawMessage
    • ReplyRawMessage
    • DeleteMessage
    • UpdateMessage
    • GetMessageReadUserList
    • GetMessageList
    • GetMessageFile
    • GetMessage
  • Chat
    • CreateChat
    • GetChat
    • UpdateChat
    • DeleteChat
    • GetChatListOfSelf
    • SearchChat
    • GetMemberList
    • IsInChat
    • AddMember
    • DeleteMember
    • GetAnnouncement
    • UpdateAnnouncement
  • Bot
    • GetBotInfo
  • Calendar
    • CreateCalendarACL
    • DeleteCalendarACL
    • GetCalendarACLList
    • SubscribeCalendarACL
    • CreateCalendar
    • DeleteCalendar
    • GetCalendar
    • GetCalendarList
    • UpdateCalendar
    • SearchCalendar
    • SubscribeCalendar
    • UnsubscribeCalendar
    • CreateCalendarEvent
    • DeleteCalendarEvent
    • GetCalendarEvent
    • GetCalendarEventList
    • UpdateCalendarEvent
    • SearchCalendarEvent
    • SubscribeCalendarEvent
    • CreateCalendarEventAttendee
    • GetCalendarEventAttendeeList
    • DeleteCalendarEventAttendee
    • GetCalendarEventAttendeeChatMemberList
    • GetCalendarFreeBusyList
    • CreateCalendarTimeoffEvent
    • DeleteCalendarTimeoffEvent
    • GenerateCaldavConf
  • MeetingRoom
    • BatchGetSummary
    • GetBuildingList
    • BatchGetBuilding
    • GetRoomList
    • BatchGetRoom
    • BatchGetFreebusy
    • ReplyInstance
    • CreateBuilding
    • UpdateBuilding
    • DeleteBuilding
    • BatchGetBuildingID
    • CreateRoom
    • UpdateRoom
    • DeleteRoom
    • BatchGetRoomID
    • GetCountryList
    • GetDistrictList
  • VC
    • ApplyReserve
    • UpdateReserve
    • DeleteReserve
    • GetReserveActiveMeeting
    • GetMeeting
    • InviteMeeting
    • SetHostMeeting
    • EndMeeting
    • StartMeetingRecording
    • StopMeetingRecording
    • GetMeetingRecording
    • SetPermissionMeetingRecording
    • GetDailyReport
    • GetTopUserReport
    • QueryRoomConfig
    • SetRoomConfig
  • Mail
    • CreateMailGroup
    • GetMailGroup
    • GetMailGroupList
    • UpdateMailGroupPatch
    • UpdateMailGroup
    • DeleteMailGroup
    • CreateMailGroupMember
    • GetMailGroupMember
    • GetMailGroupMemberList
    • DeleteMailGroupMember
    • CreateMailGroupPermissionMember
    • GetMailGroupPermissionMember
    • GetMailGroupPermissionMemberList
    • DeleteMailGroupPermissionMember
    • CreatePublicMailbox
    • GetPublicMailbox
    • GetPublicMailboxList
    • UpdatePublicMailboxPatch
    • UpdatePublicMailbox
    • CreatePublicMailboxMember
    • GetPublicMailboxMember
    • GetPublicMailboxMemberList
    • DeletePublicMailboxMember
    • ClearPublicMailboxMember
  • Approval
    • GetInstanceList
  • Helpdesk
    • StartService
    • GetTicket
    • UpdateTicket
    • GetTicketList
    • GetTicketMessageList
  • Attendance
    • UpdateUserSettings
  • File
    • UploadImage
    • DownloadImage
    • UploadFile
    • DownloadFile
  • EventCallback
    • EventV2IMMessageReceiveV1
    • EventV2IMMessageReadV1
    • EventV2IMChatDisbandedV1
    • EventV2IMChatUpdatedV1
    • EventV2IMChatMemberBotAddedV1
    • EventV2IMChatMemberBotDeletedV1
    • EventV2IMChatMemberUserAddedV1
    • EventV2IMChatMemberUserWithdrawnV1
    • EventV2IMChatMemberUserDeletedV1
    • EventV2VCMeetingMeetingStartedV1
    • EventV2VCMeetingMeetingEndedV1
    • EventV2VCMeetingJoinMeetingV1
    • EventV2VCMeetingLeaveMeetingV1
    • EventV2VCMeetingRecordingStartedV1
    • EventV2VCMeetingRecordingEndedV1
    • EventV2VCMeetingRecordingReadyV1
    • EventV2VCMeetingShareStartedV1
    • EventV2VCMeetingShareEndedV1
    • EventV1AddBot
    • EventV1RemoveBot
    • EventV1P2PChatCreate
    • EventV1AddUserToChat
    • EventV1RemoveUserFromChat
    • EventV1RevokeAddUserFromChat
    • EventV1ChatDisband

Usage

Example: create lark client

  • for sample bot and app:
cli := lark.New(lark.WithAppCredential("<APP_ID>", "<APP_SECRET>"))
  • for need handle event callback:
cli := lark.New(
    lark.WithAppCredential("<APP_ID>", "<APP_SECRET>"),
    lark.WithEventCallbackVerify("<ENCRYPY_KEY>", "<VERIFICATION_TOKEN>"),
)
  • for helpdesk app:
cli := lark.New(
    lark.WithAppCredential("<APP_ID>", "<APP_SECRET>"),
    lark.WithHelpdeskCredential("<HELPDESK_ID>", "HELPDESK_TOKEN"),
)

Example: handle event callback

for more about event callback example, see ./examples/event_callback.go .

handle message callback example:

cli := lark.New(
    lark.WithAppCredential("<APP_ID>", "<APP_SECRET>"),
    lark.WithEventCallbackVerify("<ENCRYPY_KEY>", "<VERIFICATION_TOKEN>"),
)

// handle message callback
cli.EventCallback().HandlerEventIMMessageReceiveV1(func(ctx context.Context, cli *lark.Lark, schema string, header *lark.EventV2Header, event *lark.EventV2IMMessageReceiveV1) (string, error) {
    _, _, err := cli.Message().Reply(event.Message.MessageID).SendText(ctx, "hi, "+event.Message.Content)
    return "", err
})

http.HandleFunc("/api", func(w http.ResponseWriter, r *http.Request) {
    cli.EventCallback().ListenCallback(r.Context(), r.Body, w)
})

fmt.Println("start server ...")
log.Fatal(http.ListenAndServe(":9726", nil))

Example: get bot info

for more about bot example, see ./examples/bot.go .

get bot info example:

cli := lark.New(lark.WithAppCredential("<APP_ID>", "<APP_SECRET>"))

resp, _, err := cli.Bot().GetBotInfo(ctx, &lark.GetBotInfoReq{})
fmt.Println(resp, err)

Example: send message

for more about send message example, see ./examples/send_message.go .

send text message example:

cli := lark.New(lark.WithAppCredential("<APP_ID>", "<APP_SECRET>"))

resp, _, err := cli.Message().Send().ToChatID("<CHAT_ID>").SendText(ctx, "<TEXT>")
fmt.Println(resp, err)

Example: other message

for more about other message example, see ./examples/other_message.go .

send delete message example:

cli := lark.New(lark.WithAppCredential("<APP_ID>", "<APP_SECRET>"))

resp, _, err := cli.Message().DeleteMessage(ctx, &lark.DeleteMessageReq{
    MessageID: "<MESSAGE_ID>",
})
fmt.Println(resp, err)

Example: chat

for more about chat example, see ./examples/chat.go .

create chat example:

cli := lark.New(lark.WithAppCredential("<APP_ID>", "<APP_SECRET>"))

resp, _, err := cli.Chat().CreateChat(ctx, &lark.CreateChatReq{
    Name: ptr.String("<CHAT_NAME>"),
})
fmt.Println(resp, err)

Example: file

for more about file example, see ./examples/file.go .

upload image example:

cli := lark.New(lark.WithAppCredential("<APP_ID>", "<APP_SECRET>"))

f, err := os.Open("<FILE_PATH>")
if err != nil {
    panic(err)
}
resp, _, err := cli.File().UploadImage(ctx, &lark.UploadImageReq{
    ImageType: lark.ImageTypeMessage,
    Image:     f,
})
fmt.Println(resp, err)

Example: calendar

for more about calendar example, see ./examples/calendar.go .

create calendar example:

cli := lark.New(lark.WithAppCredential("<APP_ID>", "<APP_SECRET>"))

resp, _, err := cli.Calendar().CreateCalendar(ctx, &lark.CreateCalendarReq{
    Summary: ptr.String("<SUMMARY>"),
})
fmt.Println(resp, err)
Issues
  • 支持卡片markdown模块

    支持卡片markdown模块

    Is your feature request related to a problem? Please describe. A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

    no

    Describe the solution you'd like A clear and concise description of what you want to happen.

    Describe alternatives you've considered A clear and concise description of any alternative solutions or features you've considered.

    Additional context Add any other context or screenshots about the feature request here.

    文档如下,卡片有几种类型,目前不支持构造markdown类型的卡片 https://open.feishu.cn/document/ukTMukTMukTM/uADOwUjLwgDM14CM4ATN

    feature request 
    opened by zhyon404 4
  • How to convert a json string into MessageContentCard

    How to convert a json string into MessageContentCard

    Describe the bug A clear and concise description of what the bug is.

    I need to use BatchSendOldRawMessage to send card messages in batches.

    Although is has been fixed by d42590f.

    But when I pass in a json string, it still reports an error.

    To Reproduce show code to reproduce

    	card := lark.MessageContentCard{
    		Header: &lark.MessageContentCardHeader{
    			Template: "",
    			Title: &lark.MessageContentCardObjectText{
    				Tag:     "plain_text",
    				Content: "1",
    			},
    		},
    		Config: &lark.MessageContentCardConfig{
    			EnableForward: true,
    		},
    		Modules: []lark.MessageContentCardModule{
    			lark.MessageContentCardModuleDIV{
    				Text: &lark.MessageContentCardObjectText{
    					Tag:     "plain_text",
    					Content: "1",
    				},
    				Fields: nil,
    				Extra:  nil,
    			},
    		},
    	}
    
    	fmt.Println(card.String())
    
    	var caard lark.MessageContentCard
    	err := json.Unmarshal([]byte(card.String()), &caard)
    
    	if err != nil {
    		fmt.Println(err.Error())
    	}
    
    	fmt.Println(caard.String())
    

    The output:

    {"header":{"title":{"tag":"plain_text","content":"1"}},"config":{"enable_forward":true},"elements":[{"tag":"div","text":{"tag":"plain_text","content":"1"}}]}
    json: cannot unmarshal object into Go struct field MessageContentCard.elements of type lark.MessageContentCardModule
    {"header":{"title":{"tag":"plain_text","content":"1"}},"config":{"enable_forward":true},"elements":[null]}
    

    If a pass in a json string, such as below:

    	card := lark.MessageContentCard{
    		Header: &lark.MessageContentCardHeader{
    			Template: "",
    			Title: &lark.MessageContentCardObjectText{
    				Tag:     "plain_text",
    				Content: "1",
    			},
    		},
    		Config: &lark.MessageContentCardConfig{
    			EnableForward: true,
    		},
    		Modules: []lark.MessageContentCardModule{
    			lark.MessageContentCardModuleDIV{
    				Text: &lark.MessageContentCardObjectText{
    					Tag:     "plain_text",
    					Content: "1",
    				},
    				Fields: nil,
    				Extra:  nil,
    			},
    		},
    	}
    
    	fmt.Println(card.String())
    
    	openIds := []string{
    		"ou_xxx",
    	}
    
    	_, _, err = service.GetBot().Message.BatchSendOldRawMessage(context.TODO(), &lark.BatchSendOldRawMessageReq{
    		MsgType: lark.MsgTypeInteractive,
    		Card:    card.String(),
    		OpenIDs: openIds,
    	})
    
    	fmt.Println(err.Error())
    

    The output:

    {"header":{"title":{"tag":"plain_text","content":"1"}},"config":{"enable_forward":true},"elements":[{"tag":"div","text":{"tag":"plain_text","content":"1"}}]}
    request Message#BatchSendOldRawMessage failed: code: 10002, msg: create card err, code:11246
    

    Expected behavior A clear and concise description of what you expected to happen.

    Screenshots If applicable, add screenshots to help explain your problem.

    Additional context Add any other context about the problem here.

    opened by Dup4 4
  • add Header to Response

    add Header to Response

    when request file, i wan;t to know type of file. it would be helpful if we can get Content-Type of header. so can we expose header to the user?

    	a, rsp, c := cli.Message.GetMessageFile(ctx, req)
    	t.Log(rsp.Heads.Get("Content-Type"))
    
    help wanted good first issue 
    opened by zhyon404 4
  • Demo 问题

    Demo 问题

    问题

    https://github.com/chyroc/lark/blob/master/_examples/event_callback.go#L47 这里永远会走「收到了一条纯文本消息」的逻辑。

    原因

    https://github.com/chyroc/lark/blob/master/_examples/event_callback.go#L42 函数 UnwrapMessageContent已经将所有东西都实例化了,都不为nil,所以在判断content.XXX为空的时候,不能用nil来进行判断,只能用 ""==content.XXX.XXX0==len(content.XXX.XXX)来判空,稍微麻烦一丢丢。

    影响版本

    v0.0.96 及以下

    个人建议

    UnwrapMessageContent 里面全用空指针初始化?使用起来也方便一点。

    bug 
    opened by jinyu121 3
  • Helpdesk.SearchHelpdeskFAQ error invalid json

    Helpdesk.SearchHelpdeskFAQ error invalid json

    Describe the bug Catch error when use Helpdesk.SearchHelpdeskFAQ. json: cannot unmarshal array into Go struct field SearchHelpdeskFAQRespItem.items.answer_richtext of type string

    To Reproduce

    	if result, _, err = client.Helpdesk.SearchHelpdeskFAQ(ctx, &lark.SearchHelpdeskFAQReq{
    		Query:  base64.StdEncoding.EncodeToString([]byte(request.Key)),
    		Base64: proto.String("true"),
    	}); err != nil {
    		return response, err
    	}
    

    Additional context I have try AnswerRichtext json.RawMessage instead of AnswerRichtext string, run as expected.

    bug 
    opened by FDKevin0 3
  • type_message_post link element show as text

    type_message_post link element show as text

    https://github.com/chyroc/lark/blob/01e92de3b19c5371a95705d707b14d7a26f45fca/type_message_post.go#L133

    This seems to be messageContentPostItemTypeLink

    opened by genghe123 2
  • invalid memory address or nil pointer

    invalid memory address or nil pointer

    Describe the bug GOHOSTARCH="amd64" GOHOSTOS="linux" panic: runtime error: invalid memory address or nil pointer dereference [signal SIGSEGV: segmentation violation code=0x1 addr=0x120 pc=0x66eb58]

    func (r *MessageService) SendRawMessage(ctx context.Context, request *SendRawMessageReq, options ...MethodOptionFunc) (*SendRawMessageResp, *Response, error)

    ** OK ** Darwin is ok

    opened by hodgekou 2
  • How to use `BatchSendOldRawMessage` to send card message

    How to use `BatchSendOldRawMessage` to send card message

    Describe the bug A clear and concise description of what the bug is.

    I need to send messages to multiple departments or users.

    I try to use BatchSendOldRawMessage.

    https://github.com/chyroc/lark/blob/a9629abb94e60da36efe94a1b8513504ed05cfbe/api_message.merged.go#L10-L46

    To Reproduce show code to reproduce

    The first way:

    	card := lark.MessageContentCard{
    		Header: &lark.MessageContentCardHeader{
    			Template: "",
    			Title: &lark.MessageContentCardObjectText{
    				Tag:     "plain_text",
    				Content: "1",
    			},
    		},
    		Config: &lark.MessageContentCardConfig{
    			EnableForward: true,
    		},
    		Modules: []lark.MessageContentCardModule{
    			lark.MessageContentCardModuleDIV{
    				Text: &lark.MessageContentCardObjectText{
    					Tag:     "plain_text",
    					Content: "1",
    				},
    				Fields: nil,
    				Extra:  nil,
    			},
    		},
    	}
    
    	fmt.Println(card.String())
    
    	openIds := []string{
    		"ou_123456",
    	}
    
    	_, _, err := service.GetBot().Message.BatchSendOldRawMessage(context.TODO(), &lark.BatchSendOldRawMessageReq{
    		MsgType: lark.MsgTypeInteractive,
    		Content: card.String(),
    		OpenIDs: openIds,
    	})
    

    But there is an error:

    request Message#BatchSendOldRawMessage failed: code: 10003, msg: json: cannot unmarshal string into Go struct field BatchSendMessageForm.content of type form.MessageContent
    

    The second way:

    	card := lark.MessageContentCard{
    		Header: &lark.MessageContentCardHeader{
    			Template: "",
    			Title: &lark.MessageContentCardObjectText{
    				Tag:     "plain_text",
    				Content: "1",
    			},
    		},
    		Config: &lark.MessageContentCardConfig{
    			EnableForward: true,
    		},
    		Modules: []lark.MessageContentCardModule{
    			lark.MessageContentCardModuleDIV{
    				Text: &lark.MessageContentCardObjectText{
    					Tag:     "plain_text",
    					Content: "1",
    				},
    				Fields: nil,
    				Extra:  nil,
    			},
    		},
    	}
    
    	fmt.Println(card.String())
    
    	openIds := []string{
    		"ou_123456",
    	}
    
    	_, _, err := service.GetBot().Message.BatchSendOldRawMessage(context.TODO(), &lark.BatchSendOldRawMessageReq{
    		MsgType: lark.MsgTypeInteractive,
    		Content: card,
    		OpenIDs: openIds,
    	})
    
    

    Error also occurred:

    request Message#BatchSendOldRawMessage failed: code: 10002, msg: Card required
    

    Expected behavior A clear and concise description of what you expected to happen.

    Screenshots If applicable, add screenshots to help explain your problem.

    Additional context Add any other context about the problem here.

    opened by Dup4 2
  • jssdk签名逻辑bug

    jssdk签名逻辑bug

    https://github.com/chyroc/lark/blob/12758b16444a250b6b2a7acdcf65d969773b17a8/api_jssdk_ticket_get_wrap.go#L24

    这一行实际应该是

    return fmt.Sprintf("%x", sha1Hash.Sum(nil)), nil
    
    opened by xiaodpro 2
  • build(deps): bump github.com/stretchr/testify from 1.7.1 to 1.7.2

    build(deps): bump github.com/stretchr/testify from 1.7.1 to 1.7.2

    Bumps github.com/stretchr/testify from 1.7.1 to 1.7.2.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • fix: add

    fix: add "Content-Type: application/json" haader when body is nil

    Call DeleteField to get an error, http_status: 400, code: 91401 The header Content-Type: application/json; charset=utf-8" will be added, when the body is nil. The server parses the body according to the header, and then reports an error

    opened by luw2007 1
  • 建议使用Actions工具通过Releases管理版本

    建议使用Actions工具通过Releases管理版本

    目前使用tag管理版本,自然也没有什么毛病,只是tag在github中对于历史各版本信息的追溯并不清晰,因此建议基于Releases进行管理。

    优势如下:

    • 每个版本更新内容,修复问题,改进逻辑,都能在后期基于变更日志一目了然看到。
    • 现在有很多Actions能够非常方便地自动生成Releases,再配合pull-request-template能够更加自如地管理项目的版本信息。
    • releases构建的同时会打上同版本的tag,因此基于releases管理并不会影响原来的版本管理。

    Actions文件参考:https://github.com/eryajf/go-ldap-admin/blob/main/.github/workflows/release.yml 呈现效果参考:https://github.com/eryajf/go-ldap-admin/releases

    opened by eryajf 1
Drone plugin for sending Feishu notifications.

drone-feishu Drone plugin for sending Feishu notifications. Usage Execute from the working directory: docker run --rm \ -e PLUGIN_WEBHOOK=https://op

DrizztDU 1 Jul 12, 2022
Open-IM-Server is open source instant messaging Server.Backend in Go.

Open-IM-Server Open-IM-Server: Open source Instant Messaging Server Instant messaging server. Backend in pure Golang, wire transport protocol is JSON

OpenIM Corporation 8.8k Aug 2, 2022
A lightweight, universal OneDrive upload tool for all platforms

简体中文 OneDriveUploader MoeClub wrote a very good version, but unfortunately it's not open source and hasn't been updated in a while. This project is a

高玩梁 242 Jul 12, 2022
A lightweight, universal cloud drive upload tool for all platforms

简体中文 LightUploader MoeClub wrote a very good version, but unfortunately it's not open source and hasn't been updated in a while. This project is a sim

高玩梁 242 Jul 12, 2022
A Remote Administration Tool made in golang. All controlled with a bot.

DISGORAT Information DISGORAT is a Remote Administration Tool fully made in golang. Change the Bottoken, webhook, guild id, channelid in main.go and y

Hima 7 Mar 11, 2022
This slack-bot collects all @gophers notifications into one slack channel

slack-bot Slack bot copying reference to a ping to notifications channel The bot is designed to listen on messages containing specific tag, copy refer

Kyma Incubator 2 Apr 11, 2022
This repo is some SDK of Binance

Binance API Go Language SDK This is a Binance Go language sdk that uses a method similar to HuobiRDCenter/huobi_Golang Official Documents Please make

Mickey (Ah !) 131 Jul 5, 2022
A golang sdk for guild bot

botgo a golang sdk for guild bot 设计模式 分为三个主要模块 openapi 用于请求 http 的 openapi websocket 用于监听事件网关,接收事件消息 oauth 用于处理 oauth 的 token 获取 openapi 接口定义:openapi/

null 176 Jul 25, 2022
Official Go Keybase chat bot SDK

go-keybase-chat-bot Write rich bots for Keybase chat in Go. Installation Make sure to install Keybase. go get -u github.com/keybase/go-keybase-chat-bo

Keybase 103 Jul 8, 2022
Slack bot core/framework written in Go with support for reactions to message updates/deletes

Overview Requirements Features Demo The Name Concepts Create Your Own Slackscot Assembling the Parts and Bringing Your slackscot to Life Configuration

Alexandre Normand 52 Jul 6, 2022
Bot flash sale shopee tanpa webdriver atau selenium. support Android (Termux), Windows, dan Linux

Disclaimer Pembuat bot ini tidak bertanggung jawab jika anda kena banned/blokir shopee Fitur Tidak mengandalkan webdriver atau selenium dapat membuat

null 32 Jul 31, 2022
Kelp is a free and open-source trading bot for the Stellar DEX and 100+ centralized exchanges

Kelp Kelp is a free and open-source trading bot for the Stellar universal marketplace and for centralized exchanges such as Binance, Kraken, CoinbaseP

Stellar 911 Aug 4, 2022
IRC bot for launch ddos attack, Mainly of scan target are IoT device that run linux and open default SSH port

This is my first IRC bot for launch ddos attack, Mainly of scan target are IoT device that run linux and open default SSH port, This bot is write on Go language. For education purpose only. Please test it in your lab. And i create this for join university in the future not for attack anyone server with out any permission!!!

Bozer 0 May 10, 2022
BlueBot is an open-source trading bot that can be customized to handle specific investment strategies.

BlueBot Quick Note BlueBot and all mentioned services are free to use, including supported financial APIs. Overview BlueBot is a self-healing trading

Coby Eastwood 18 Apr 20, 2022
HoloBot — An open-source Discord bot for Hololive fans, built with Go.

HoloBot HoloBot — An open-source Discord bot for Hololive fans, built with Go. Installation From Binary Download holobot binary here. Create a file ca

TacticalCatto 5 Dec 17, 2021
The real 0xSniper. Open your nitro sniping service easy just need to patch the code.

# ss-sniper Hi my homies, Here was the ss-sniper, the "best" nitro sniper. Average delay -> 100~120ms. The sniper include invite checker (minimal o

&! Ѵιchy.#0110 8 Jun 17, 2022
Tg-channel-api - A JSON API for latest messages of public Telegram channels

Telegram Channel API A JSON API for latest messages of public Telegram channels.

null 2 Jul 24, 2022
Telego is Telegram Bot API library for Golang with full API implementation (one-to-one)

Telego • Go Telegram Bot API Telego is Telegram Bot API library for Golang with full API implementation (one-to-one) The goal of this library was to c

Artem Yadelskyi 88 Aug 8, 2022
Golang telegram bot API wrapper, session-based router and middleware

go-tgbot Pure Golang telegram bot API wrapper generated from swagger definition, session-based routing and middlewares. Usage benefits No need to lear

Oleg Lebedev 113 Jul 6, 2022