Discord를 사용하여 GitHub에서 제품 지원
12798 단어 discordphpgithubproductivity
요컨대 문제는 내가 문제의 추적기80+ GitHub repos에서 각종 요청을 받았는데 이런 요청은 제품의 실제 문제가 아니라 도움을 필요로 하는 사람들이다.문제 추적기에서 문제를 열면 다음과 같습니다.
나의 이전 해결 방안은 포럼 소프트웨어를 사용하는 것이다.가능하지만 누구나 며칠이 걸려야 지원 요청을 알아차리고 회답을 받을 수 있다.대다수의 사람들은 실시간으로 왔다갔다하며 토론할 수 있는 해결 방안을 더욱 좋아한다.
대부분의 실시간 채팅 기술 지원 솔루션은 비싸고 주로 텍스트 기반이다.Discord 에 들어가기: 무료 텍스트, 오디오, 동영상 채팅 시스템그러나 Discord 자체는 다음 워크플로우를 처리할 준비가 되어 있지 않습니다.
우리는 Discord SDK for PHP를 사용하여 기본적인 포털 페이지를 만들고 정보를 Discord 채널에 보내며 임시로 일회용 초대장을 만들고 사용자를 Discord로 다시 지정할 것입니다.이것은 실시간 지원 시스템의 기초를 이루고 인증코드를 해결하거나 테이프를 통해 결제를 받아서 접근을 관리할 수 있도록 확장할 수 있다.유효한 invite 코드가 없으면 아무도 들어갈 수 없습니다. 스크립트의 모든 검사가 통과되었을 때만 초대장을 보낼 수 있습니다.
<?php
require_once "support/sdk_discord.php";
require_once "support/http.php";
function DisplayError($title, $msg)
{
// Output website header here.
?>
<div class="contentwrap">
<div class="contentwrapinner">
<h1><?=htmlspecialchars($title)?></h1>
<p><?=$msg?></p>
</div>
</div>
<?php
// Output website footer here.
exit();
}
$githubuser = "[YOUR_GITHUB_USER]";
$webhookurl = "[CHANNEL_WEBHOOK_URL]";
$bottoken = "[YOUR_BOT_TOKEN]";
$channelid = "[INVITE_CHANNEL_ID]";
if (!isset($_SERVER["HTTP_REFERER"])) DisplayError("Missing Referrer", "This page was accessed directly. Please enter via a <a href=\"https://github.com/" . $githubuser . "/\">valid repository on GitHub</a>.");
// Check the HTTP referer header to verify the user is coming from a valid repository.
$url = HTTP::ExtractURL($_SERVER["HTTP_REFERER"]);
if ($url["host"] !== "github.com" || strncmp($url["path"], "/" . $githubuser . "/", strlen("/" . $githubuser . "/")) != 0) DisplayError("Invalid Referrer", "This page was accessed incorrectly. Please enter via the relevant <a href=\"https://github.com/" . $githubuser . "/\">repository on GitHub</a>.");
// Send initial message to the main channel.
$options = array(
"content" => str_replace("https://", "", HTTP::CondenseURL($url))
);
$result = DiscordSDK::SendWebhookMessage($webhookurl, $options);
if (!$result["success"]) DisplayError("Discord Error", "An error occurred while attempting to access Discord. " . htmlspecialchars($result["error"] . " (" . $result["errorcode"] . ")"));
// Create a temporary invite.
$discord = new DiscordSDK();
$discord->SetAccessInfo("Bot", $bottoken);
$options = array(
"max_age" => 1800,
"max_uses" => 1,
"unique" => true,
"temporary" => true
);
$result = $discord->RunAPI("POST", "channels/" . $channelid . "/invites", $options);
if (!$result["success"]) DisplayError("Discord Error", "An error occurred while attempting to setup Discord. " . htmlspecialchars($result["error"] . " (" . $result["errorcode"] . ")"));
// Redirect the user's browser to the invite.
$url = "https://discord.gg/" . $result["data"]["code"];
header("Location: " . $url);
?>
위의 PHP 스크립트는 액세스 가능한 공용 웹 서버에 있습니다.유효한 태그 및 정보를 사용하여 다양한 문자열 자리 표시자를 수정합니다.여기에는 Discord SDK for PHP 저장소에 Discord Webhook과 Bot을 설정하는 방법에 대한 단계별 설명이 있습니다.위의 스크립트를 구성하면 저장소에 연결하고 Discord 지원 채널에서 방문자를 받을 수 있습니다.재구매 계약에 대한 읽어보기 파일 가격 인하에 동적 단추를 추가합니다.
[![Discord](https://img.shields.io/discord/INVITE_CHANNEL_ID?label=chat&logo=discord)](URL_OF_SCRIPT)
정확한 값으로 INVITE_CHANNEL_ID
과 URL_OF_SCRIPT
를 바꾸다.변경 사항을 저장소에 제출합니다.만약 모든 것이 순조롭다면, Discord 로고, 단어 'chat', 온라인 사용자 수가 있는 차단/단추가respository에 나타날 것입니다.개인 네트워크 탐색/익명 창을 사용하면 '새로 만들기' 단추를 누르면 사용자가 불화를 일으킬 수 있는지 확인할 수 있습니다.
Discord 채널은 소스 저장소의 사용자만 액세스할 수 있습니다.다른 모든 사람들은 거부될 것이다. (예를 들어, 누군가가 원천 환매를 통해 지점을 방문할 것이다.)
새로운 실시간 채팅 제품 지원을 누리세요!
Reference
이 문제에 관하여(Discord를 사용하여 GitHub에서 제품 지원), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/cubiclesocial/using-discord-for-product-support-from-github-56og텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)