Socialfred
Social Fred API Client
Installation
Add this line to your application's Gemfile:
gem 'socialfred'
And then execute:
$ bundle
Or install it yourself as:
$ gem install socialfred
Usage
API Client
api = Socialfred::Api.new(api_key)
Social Posts
Create a social post
image1 = {data: Base64.encode64(image.download), filename: 'image.jpeg', content_type: 'image/jpeg'}
# ...
api.publications.create(
publish_at: Time.now,
text: "example text",
images: [image1, image2],
options: {
telegram: {
alternative_text: "Telegram Alternative Text",
reply_markup: {
inline_keyboard: [
[{text: 'Button', url: 'button_url'}]
]
}
}
}
)
Response:
{
'data' => {
'id' => '99',
'type' => 'publication',
'attributes' => {
'text' => 'example text',
'created_at' => '2019-10-30T23:54:12.147+01:00',
'updated_at' => '2019-10-30T23:54:12.192+01:00',
'status' => 'new',
'published_at' => '2045-06-01T12:05:00.000+01:00'
}
}
}
Update a social post
api.publications.update(99, text: 'another text')
Response:
{
'data' => {
'id' => '99',
'type' => 'publication',
'attributes' => {
'text' => 'another text',
'created_at' => '2019-10-30T23:54:12.147+01:00',
'updated_at' => '2019-10-31T00:01:58.128+01:00',
'status' => 'new',
'published_at' => '2045-06-01T12:05:00.000+01:00'
}
}
}
Destroy a social post
api.publications.destroy(99)
Response:
{
'data' => {
'id' => '99',
'type' => 'publication',
'attributes' => {
'text' => 'another text',
'created_at' => '2019-10-30T23:54:12.147+01:00',
'updated_at' => '2019-10-31T00:03:30.973+01:00',
'status' => 'to_be_deleted',
'published_at' => '2045-06-01T12:05:00.000+01:00'
}
}
}
List all social posts
api.publications.all(page: 1, per_page: 10)
Response:
{
'data' => [
{
'id' => '98',
'type' => 'publication',
'attributes' => {
'text' => 'test1',
'created_at' => '2019-10-30T20:54:14.960+01:00',
'updated_at' => '2019-10-30T20:54:15.011+01:00',
'status' => 'new',
'published_at' => '2019-10-30T20:59:14.000+01:00'
}
},
# ...
{
'id' => '95',
'type' => 'publication',
'attributes' => {
'text' => 'test2',
'created_at' => '2019-10-29T22:46:35.857+01:00',
'updated_at' => '2019-10-29T23:46:41.645+01:00',
'status' => 'published',
'published_at' => '2019-10-29T23:46:35.000+01:00'
}
}
],
'links' => {
'first' => 'https://api.socialfred.com/publications?page=1&per_page=10',
'last' => 'https://api.socialfred.com/publications?page=26&per_page=10',
'next' => 'https://api.socialfred.com/publications?page=2&per_page=10'
},
'meta' => { 'total' => 51 }
}
Find one social post
api.publications.find(95)
Response:
{
'data' => {
'id' => '95',
'type' => 'publication',
'attributes' => {
'text' => 'test2',
'created_at' => '2019-10-29T22:46:35.857+01:00',
'updated_at' => '2019-10-29T23:46:41.645+01:00',
'status' => 'published',
'published_at' => '2019-10-29T23:46:35.000+01:00'
}
}
}
Development
After checking out the repo, run bin/setup
to install dependencies. Then, run rake spec
to run the tests. You can also run bin/console
for an interactive prompt that will allow you to experiment.
To install this gem onto your local machine, run bundle exec rake install
.
Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/SocialFred/socialfred.
License
The gem is available as open source under the terms of the MIT License.