The BlueSky atproto-cpp library provides a C++ interface for interacting with the BlueSky social networking service. This library includes functions to handle user authentication, post creation, feed retrieval, and more.
- User authentication and session management
- Post creation and feed retrieval
- Helper functions for JSON manipulation and URL encoding
To use the BlueSky HPP library, include the header files in your project and link against the required dependencies.
#include "bluesky_client.hpp"To initialize the BlueskyClient, provide the server address:
BlueskyClient client("bsky.social");To log in to the BlueSky service, use the login function:
bool success = client.login("your_identifier", "your_password");
if (success) {
std::cout << "Logged in successfully!" << std::endl;
} else {
std::cerr << "Login failed!" << std::endl;
}To create a new post, use the createPost function:
BlueskyClient::Error error = client.createPost("Hello, BlueSky!");
if (error == BlueskyClient::Error_None) {
std::cout << "Post created successfully!" << std::endl;
} else {
std::cerr << "Failed to create post!" << std::endl;
}To retrieve posts from a feed, use the getFeedPosts function:
BlueskyClient::PostsResult result = client.getFeedPosts("feed_uri", 10);
if (result.error == BlueskyClient::Error_None) {
for (const auto& post : result.posts) {
std::cout << "Post: " << post.text << std::endl;
}
} else {
std::cerr << "Failed to retrieve feed posts!" << std::endl;
}To retrieve posts from a specific author, use the getAuthorPosts function:
BlueskyClient::PostsResult result = client.getAuthorPosts("author_id", 10);
if (result.error == BlueskyClient::Error_None) {
for (const auto& post : result.posts) {
std::cout << "Author Post: " << post.text << std::endl;
}
} else {
std::cerr << "Failed to retrieve author posts!" << std::endl;
}getUnreadCount(): Retrieves the count of unread notifications.filterText(const std::string& str): Filters special characters from a text string.splitIntoWords(const std::string& str): Splits a string into individual words.urlEncode(const std::string& str): Encodes a string for use in URLs.createJsonString(const std::map<std::string, std::string>& data): Creates a JSON string from a map of key-value pairs.
- Prototype, Untested
Contains portions of bluesky_esphom and postbluesky