{"id":13367233,"url":"https://github.com/nikepan/Govkbot","last_synced_at":"2025-03-12T18:32:13.919Z","repository":{"id":57494441,"uuid":"63105711","full_name":"nikepan/govkbot","owner":"nikepan","description":"VK bot package for Go","archived":false,"fork":false,"pushed_at":"2023-10-31T14:58:38.000Z","size":136,"stargazers_count":50,"open_issues_count":1,"forks_count":5,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-04T00:03:19.935Z","etag":null,"topics":["bot","go","standalone","vk","vk-bot","vkontakte","vkontakte-api"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nikepan.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2016-07-11T22:09:54.000Z","updated_at":"2024-11-06T11:54:13.000Z","dependencies_parsed_at":"2022-09-02T19:50:39.211Z","dependency_job_id":"1a6e0ff0-e714-4cd6-bf03-7c991c42eec9","html_url":"https://github.com/nikepan/govkbot","commit_stats":null,"previous_names":[],"tags_count":36,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nikepan%2Fgovkbot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nikepan%2Fgovkbot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nikepan%2Fgovkbot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nikepan%2Fgovkbot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nikepan","download_url":"https://codeload.github.com/nikepan/govkbot/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243271545,"owners_count":20264473,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bot","go","standalone","vk","vk-bot","vkontakte","vkontakte-api"],"created_at":"2024-07-30T00:01:42.091Z","updated_at":"2025-03-12T18:32:13.672Z","avatar_url":"https://github.com/nikepan.png","language":"Go","funding_links":[],"categories":["第三方 APIs"],"sub_categories":["高级控制台界面","高級控制台界面"],"readme":"# Go VK bot package\n \n[![Build Status](https://travis-ci.org/nikepan/govkbot.svg?branch=master)](https://travis-ci.org/nikepan/govkbot)\n[![codecov](https://codecov.io/gh/nikepan/govkbot/branch/master/graph/badge.svg)](https://codecov.io/gh/nikepan/govkbot)\n[![Go Report Card](https://goreportcard.com/badge/github.com/nikepan/govkbot)](https://goreportcard.com/report/github.com/nikepan/govkbot)\n[![godoc](http://img.shields.io/badge/godoc-reference-blue.svg?style=flat)](https://godoc.org/github.com/nikepan/govkbot)\n\n\nThis is simple VK.com bot API.\n\n\n\u003e At 2019-03-01 VK was restrict messages.send for user_tokens. This bot can work with group_token, and access to chat members if has admin rights in chat. You can use v1.0.1 also, if you need only user_token access.\n\n\nIt can:\n\n* Reply to messages (private and chat)  \n* Send greetings message when invited to chat\n* Add and remove mutual friends\n* Send notifies to admin\n\nInstallatioin:\n\nUse `go mod`\nFor old Go versions you can also use\n`go get github.com/nikepan/govkbot/v2`\n\nFor work you need get VK access token with rights: messages,friends,offline (see below).\n\n\n# Quickstart\n\n```Go\npackage main\nimport \"github.com/nikepan/govkbot/v2\"\nimport \"log\"\n\nvar VKAdminID = 3759927\nvar VKToken = \"efjr98j9fj8jf4j958jj4985jfj9joijerf0fj548jf94jfiroefije495jf48\"\n\nfunc helpHandler(m *govkbot.Message) (reply string) {\n  return \"help received\"\n}\n\nfunc startHandler(m *govkbot.Message) (reply govkbot.Reply) {\n\tkeyboard := govkbot.Keyboard{Buttons: make([][]govkbot.Button, 0)}\n\tbutton := govkbot.NewButton(\"/help\", nil)\n\trow := make([]govkbot.Button, 0)\n\trow = append(row, button)\n\tkeyboard.Buttons = append(keyboard.Buttons, row)\n\n\treturn govkbot.Reply{Msg: availableCommands, Keyboard: \u0026keyboard}\n}\n\nfunc errorHandler(m *govkbot.Message, err error) {\n  log.Fatal(err.Error())\n}\n\nfunc main() {\n    //govkbot.HandleMessage(\"/\", anyHandler)\n    //govkbot.HandleMessage(\"/me\", meHandler)\n    govkbot.HandleMessage(\"/help\", helpHandler)\n    govkbot.HandleAdvancedMessage(\"/start\", startHandler)\n\n    //govkbot.HandleAction(\"chat_invite_user\", inviteHandler)\n    //govkbot.HandleAction(\"chat_kick_user\", kickHandler)\n    //govkbot.HandleAction(\"friend_add\", addFriendHandler)\n    //govkbot.HandleAction(\"friend_delete\", deleteFriendHandler)\n\n    govkbot.HandleError(errorHandler)\n\n    govkbot.SetAutoFriend(true) // enable auto accept/delete friends\n\n    govkbot.SetDebug(true) // log debug messages\n\n    // Optional Direct VK API access\n    govkbot.SetAPI(VKToken, \"\", \"\") // Need only before Listen, if you use direct API\n    me, _ := govkbot.API.Me() // call API method\n    log.Printf(\"current user: %+v\\n\", me.FullName())\n    // Optional end\n\n    govkbot.Listen(VKToken, \"\", \"\", VKAdminID)\n}\n```\n# Getting group token\n\nOpen group manage and select \"Work with API\"\n\n# Getting user token (most likely will not work for messages)\n\nYou need standalone vk app_id. You can use any app_id from https://vk.com/apps?act=wingames, for example 4775211 \n (Or you can create own app and get app_id on page https://vk.com/editapp?act=create (standalone app))\n\nYou can get token from you server ip with this node.js package:\nhttps://www.npmjs.com/package/vk-auth (you need login, pass and app_id)\n\n\nTo manual get token you need:\n\n1. Open in browser with logged in VK (you must use IP, where you want run bot)\n```\n https://oauth.vk.com/authorize?client_id={{app_id}}\u0026scope=offline,groups,messages,friends\u0026display=page\u0026response_type=token\u0026redirect_uri=https://oauth.vk.com/blank.html\n ```\n2. Copy token query parameter from URL string. Token valid only for IP from what you get it.\n\n\nIf you receive validation check (for example, you use ip first time)\n```json\n{\"error\":{\"error_code\":17,\"error_msg\":\"Validation required: please open redirect_uri in browser ...\", \n\"redirect_uri\":\"https://m.vk.com/login?act=security_check\u0026api_hash=Qwerty1234567890\"}}\n```\nyou can use https://github.com/Yashko/vk-validation-node.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnikepan%2FGovkbot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnikepan%2FGovkbot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnikepan%2FGovkbot/lists"}