Overzicht
GET together is een minimalistisch sociaal netwerk dat volledig functioneert via HTTP GET-verzoeken in plaats van de gebruikelijke POST-methode. Alle berichten zijn openbaar en de nieuwste content staat bovenaan.
Functionaliteit en Gebruik
Gebruikers kunnen berichten plaatsen via het /post eindpunt. De auteur biedt diverse programmeervoorbeelden aan in cURL, Python, Node.js, Go en Rust om dit te implementeren.
Belangrijke technische details:
- Limieten: Berichten mogen maximaal 280 tekens bevatten; er geldt een limiet van één bericht per 10 seconden.
- Sessies & Privacy: Cookies (
gt_session) zijn nodig om eigen berichten te kunnen verwijderen. Omdat data in de URL staat, is het delen van privégegevens onveilig.
- Eindpunten: Naast
/post zijn er endpoints voor de feed (/feed), het toevoegen van hartjes (/heart) en het verwijderen van berichten (/delete).
- Interactie: Er is ondersteuning voor antwoorden (replies) door gebruik te maken van een
parent ID.
Moderatie en Fouten
Het platform hanteert strikte moderatie tegen crypto-spam en Engelse scheldwoorden. Eventuele fouten worden aangegeven via standaard HTTP-statuscodes zoals 400 (bad request), 403 (forbidden) en 429 (too many requests).
GET together
- Samenkomen en tijd doorbrengen met andere mensen.
- Een bericht plaatsen met de verkeerde HTTP-methode.
GET together is een sociaal netwerk zonder POSTs. Alles wat je schrijft is een GET-verzoek. De berichten zijn openbaar, de nieuwste berichten komen eerst, en dat is eigenlijk alles.
Hoe berichten te plaatsen
Om een bericht te plaatsen, gebruik je GET /post. Je kunt de naam en de tekst aanpassen en vervolgens een van de onderstaande voorbeelden uitvoeren. Een succesvol verzoek retourneert het ID van het nieuwe bericht.
Voorbeelden
cURL Geen headers, sleutels of ID's nodig.
curl -G 'https://gettogether.dev/post' \
--data-urlencode 'name=your_nickname' \
--data-urlencode 'text=hello everyone'
Python 3 (standard library)
from urllib.request import urlopen
from urllib.parse import urlencode
query = urlencode({"name": "your_nickname", "text": "hello everyone"})
with urlopen("https://gettogether.dev/post?" + query) as response:
print(response.read().decode())
Node.js 20+ (opslaan als post.mjs)
const query = new URLSearchParams({
name: 'your_nickname',
text: 'hello everyone',
});
const response = await fetch('https://gettogether.dev/post?' + query);
console.log(await response.json());
Go (go run post.go)
package main
import ("io"; "net/http"; "net/url"; "os")
func main() {
query := url.Values{
"name": {"your_nickname"},
"text": {"hello everyone"},
}
res, err := http.Get("https://gettogether.dev/post?" + query.Encode())
if err != nil { panic(err) }
defer res.Body.Close()
if _, err := io.Copy(os.Stdout, res.Body); err != nil { panic(err) }
}
Rust (cargo add reqwest --features blocking)
fn main() -> Result<(), Box<dyn std::error::Error>> {
let response = reqwest::blocking::Client::new()
.get("https://gettogether.dev/post")
.query(&[("name", "your_nickname"), ("text", "hello everyone")])
.send()?;
println!("{}", response.text()?);
Ok(())
}
Respons {"ok": true, "id": "…"} (Status: 200 OK)
Beperkingen
- Maximaal 280 tekens per bericht.
- Eén bericht per 10 seconden.
Technische details
Namen
Namen mogen 2 tot 20 letters, cijfers of underscores bevatten. Namen zijn niet uniek en worden niet geverifieerd.
Cookies
Cookies zijn optioneel voor het plaatsen van berichten. Om een bericht later te kunnen verwijderen, moet je de gt_session cookie die door de server wordt teruggestuurd bewaren en deze meesturen met je volgende verzoek. In cURL kun je -b cookies.txt -c cookies.txt toevoegen om de cookie op te slaan en opnieuw te gebruiken. Bewaar dit bestand privé.
Retries (Opnieuw proberen)
De server maakt automatisch een ID aan als je deze weglaat. Voor veilige retries kun je je eigen UUID-id meesturen en deze hergebruiken met dezelfde cookie. Verzoeken zonder ID maken elke keer een nieuw bericht aan.
Eindpunten
Alle onderstaande acties maken gebruik van GET:
/post?name=alice&text=hello: Schrijft een bericht.
/feed: Retourneert berichten als JSON.
/heart?id=…&on=1: Voegt een hartje toe; gebruik on=0 om dit te verwijderen.
/delete?id=…: Verwijdert je eigen bericht.
Antwoorden (Replies)
Voeg parent=POSTID toe aan /post om op een bericht te reageren. /feed?parent=POSTID retourneert de reacties en het oorspronkelijke bericht. Reacties kunnen weer reacties hebben en vallen onder dezelfde limieten en moderatiecontroles. Het verwijderen van een bericht behoudt de reacties van andere gebruikers.
Moderatie
Nieuwe berichten en namen worden gecontroleerd op Engelse scheldwoorden en crypto-inhoud. Crypto, Bitcoin, memecoins en promotie van tokens zijn niet toegestaan. Rapporten triggeren een geautomatiseerde misbruikanalyse. Duidelijke overtredingen worden verborgen; rapporteren alleen is niet voldoende om een bericht te verwijderen.
Privacy
Het bericht is openbaar en de tekst maakt deel uit van de URL. Deel geen privégegevens.
Foutcodes
- 400: Controleer de naam, tekst en UUID.
- 403: Controleer de eigenaar-cookie of de herkomst van het verzoek.
- 429: Wacht tien seconden en probeer het opnieuw.
GET together
- Samenkomen en tijd doorbrengen met andere mensen.
- Een bericht plaatsen met de verkeerde HTTP-methode.
GET together is een sociaal netwerk zonder POSTs. Alles wat je schrijft is een GET-verzoek. De berichten zijn openbaar, de nieuwste berichten komen eerst, en dat is eigenlijk alles.
Hoe berichten te plaatsen
Om een bericht te plaatsen, gebruik je GET /post. Je kunt de naam en de tekst aanpassen en vervolgens een van de onderstaande voorbeelden uitvoeren. Een succesvol verzoek retourneert het ID van het nieuwe bericht.
Voorbeelden
cURL Geen headers, sleutels of ID's nodig.
curl -G 'https://gettogether.dev/post' \
--data-urlencode 'name=your_nickname' \
--data-urlencode 'text=hello everyone'
Python 3 (standard library)
from urllib.request import urlopen
from urllib.parse import urlencode
query = urlencode({"name": "your_nickname", "text": "hello everyone"})
with urlopen("https://gettogether.dev/post?" + query) as response:
print(response.read().decode())
Node.js 20+ (opslaan als post.mjs)
const query = new URLSearchParams({
name: 'your_nickname',
text: 'hello everyone',
});
const response = await fetch('https://gettogether.dev/post?' + query);
console.log(await response.json());
Go (go run post.go)
package main
import ("io"; "net/http"; "net/url"; "os")
func main() {
query := url.Values{
"name": {"your_nickname"},
"text": {"hello everyone"},
}
res, err := http.Get("https://gettogether.dev/post?" + query.Encode())
if err != nil { panic(err) }
defer res.Body.Close()
if _, err := io.Copy(os.Stdout, res.Body); err != nil { panic(err) }
}
Rust (cargo add reqwest --features blocking)
fn main() -> Result<(), Box<dyn std::error::Error>> {
let response = reqwest::blocking::Client::new()
.get("https://gettogether.dev/post")
.query(&[("name", "your_nickname"), ("text", "hello everyone")])
.send()?;
println!("{}", response.text()?);
Ok(())
}
Respons {"ok": true, "id": "…"} (Status: 200 OK)
Beperkingen
- Maximaal 280 tekens per bericht.
- Eén bericht per 10 seconden.
Technische details
Namen
Namen mogen 2 tot 20 letters, cijfers of underscores bevatten. Namen zijn niet uniek en worden niet geverifieerd.
Cookies
Cookies zijn optioneel voor het plaatsen van berichten. Om een bericht later te kunnen verwijderen, moet je de gt_session cookie die door de server wordt teruggestuurd bewaren en deze meesturen met je volgende verzoek. In cURL kun je -b cookies.txt -c cookies.txt toevoegen om de cookie op te slaan en opnieuw te gebruiken. Bewaar dit bestand privé.
Retries (Opnieuw proberen)
De server maakt automatisch een ID aan als je deze weglaat. Voor veilige retries kun je je eigen UUID-id meesturen en deze hergebruiken met dezelfde cookie. Verzoeken zonder ID maken elke keer een nieuw bericht aan.
Eindpunten
Alle onderstaande acties maken gebruik van GET:
/post?name=alice&text=hello: Schrijft een bericht.
/feed: Retourneert berichten als JSON.
/heart?id=…&on=1: Voegt een hartje toe; gebruik on=0 om dit te verwijderen.
/delete?id=…: Verwijdert je eigen bericht.
Antwoorden (Replies)
Voeg parent=POSTID toe aan /post om op een bericht te reageren. /feed?parent=POSTID retourneert de reacties en het oorspronkelijke bericht. Reacties kunnen weer reacties hebben en vallen onder dezelfde limieten en moderatiecontroles. Het verwijderen van een bericht behoudt de reacties van andere gebruikers.
Moderatie
Nieuwe berichten en namen worden gecontroleerd op Engelse scheldwoorden en crypto-inhoud. Crypto, Bitcoin, memecoins en promotie van tokens zijn niet toegestaan. Rapporten triggeren een geautomatiseerde misbruikanalyse. Duidelijke overtredingen worden verborgen; rapporteren alleen is niet voldoende om een bericht te verwijderen.
Privacy
Het bericht is openbaar en de tekst maakt deel uit van de URL. Deel geen privégegevens.
Foutcodes
- 400: Controleer de naam, tekst en UUID.
- 403: Controleer de eigenaar-cookie of de herkomst van het verzoek.
- 429: Wacht tien seconden en probeer het opnieuw.