준비 중인 채널
Bluesky
포샌디로 AI가 Bluesky에 올리게 될 방법이에요. OAuth 대신 앱 비밀번호로 연결하고, 글자는 그래핌으로 세고, 링크는 따로 처리해요.
준비 중인 채널이에요. 아래는 연결이 열리면 쓰게 될 방법이에요. 열리면 블로그와 이 페이지에 알려드려요.
연결 방법: 앱 비밀번호
Bluesky에는 다른 앱이 쓰는 승인 화면이 없어요. 그래서 이렇게 연결하게 돼요.
- Bluesky 설정에서 앱 비밀번호를 만들어요.
- 그 값을 대시보드에 붙여넣어요.
플랫폼 심사는 없어요. 포샌디는 앱 비밀번호를 URL에 넣지 않아요.
한눈에
| 항목 | 종류 | 값 |
|---|---|---|
| 글자 수 | 텍스트 | 300 |
| 이미지 | 미디어 | 글 하나에 4장까지. 더 넣으면 앞의 4장만 올라가고 경고가 붙어요 |
| 캐러셀 | 미디어 | 없음. 이미지는 글 안에 차례로 들어가요 |
| 영상 | 미디어 | 글 하나에 1개 |
| 텍스트만 | 미디어 | 가능 |
| 24시간 발행 | 한도 | 11,666 |
| 24시간 삭제 | 한도 | 35,000 |
| 상태 | 상태 | 준비 중 |
연결이 열리면 서버가 이 값으로 검사하게 돼요. Bluesky는 글자를 그래핌(읽는 사람 눈에 한 글자로 보이는 단위)으로 세고, UTF-8 바이트 상한도 같이 둬요. 그래서 이모지 300개로 된 글은 바이트 상한에 걸려요.
langs를 꼭 넣어야 하는 이유
Bluesky의 피드 생성기는 글의 언어로 글을 걸러요.
options.bluesky.langs가 없어도 글은 올라가요. 하지만 언어별 피드에는 절대 안 나와요.- Bluesky에는 수정 기능이 없어서 나중에 고칠 수도 없어요.
- 실제로 쓴 언어를 BCP-47 코드로 1~3개 넣어요.
링크와 멘션
Bluesky는 본문에 있는 링크를 알아서 찾아 주지 않아요. 그래서 포샌디가 facets를 만들어 줄 예정이에요.
- 본문의 URL, @멘션, #해시태그가 눌리는 링크가 돼요.
- 첫 번째 URL은 Open Graph 정보를 읽어 미리보기 카드로 만들어요.
URL은 본문에 그냥 적으면 돼요.
첫 글 올리기
본문과 langs를 넣어 publish를 부르게 돼요. 이미지는 4장까지 격자로, 영상은 1개 들어가요.
curl -X POST https://api.posendy.com/v1/posts \
-H "Authorization: Bearer $POSENDY_KEY" \
-H "Content-Type: application/json" \
-d '{
"content": "Shipped nested replies today. https://posendy.com",
"accountIds": ["conn_..."],
"options": { "bluesky": { "langs": ["en"] } }
}'
options.bluesky 값
| 이름 | 타입 | 설명 |
|---|---|---|
langs | string[] | 글에 쓴 언어예요. ["ko"]나 ["en", "ko"]처럼 BCP-47 코드 1~3개를 넣어요. 피드 생성기가 이 값으로 거르기 때문에, 없으면 언어별 피드에 안 나와요. Bluesky는 글 수정이 없어서 올린 뒤에는 못 고쳐요. 실제로 쓴 언어를 넣어요. |
content | string | 이 채널에만 보낼 본문이에요. 넣으면 공통 본문 대신 이 값이 나가고, 글자 수와 미디어 검사도 이 값으로 해요. 안 넣으면 공통 본문을 써요. |
연결이 열리면 GET /v1/platforms도 같은 내용을 돌려주게 돼요.
안 되는 것
- 올린 글 수정: Bluesky에 없는 기능이에요.
- Instagram식 캐러셀: 여러 장은 격자로 보여요.
삭제는 돼요. Bluesky 화면 쪽 서버(앱뷰)는 지운 글을 한동안 계속 보여줄 수 있어서, 포샌디는 계정의 데이터 서버에서 지워졌는지 확인하게 돼요.
자주 묻는 것
Bluesky 비밀번호를 포샌디에 줘야 하나요?
아니요. Bluesky 설정에서 따로 만들고 언제든 없앨 수 있는 앱 비밀번호를 만들어 대시보드에 붙여넣어요. 이 값은 요청 본문으로만 보내고 URL에는 넣지 않아요.
내 글이 언어별 피드에 왜 안 나오나요?
langs를 넣지 않아서예요. 피드 생성기가 이 값으로 걸러요. 올린 뒤에는 고칠 수 없어서, 지우고 langs를 넣어 다시 올려야 해요.
300자인데 왜 거절됐나요?
Bluesky는 UTF-8 3,000바이트 상한도 같이 둬요. 이모지나 ZWJ 결합 문자가 많은 글은 그래핌 수로는 통과해도 바이트 수에서 걸려요. 오류 메시지에 어느 쪽 상한에 걸렸는지 나와요.
