New Projects
- What is the project about?
This project allows an easy and smooth integration of SteemConnect V2 OAuth 2 flow into PHP applications.
This is the first installment, of a bigger library being built (SteemConnect V2 SDK for PHP), where this client will handle the Authorization flow.
Even being part of a larger project, it can be easily used standalone to handle SteemConnect authorization using PHP.
- How does it work?
Nothing better for developers than showing the actual code:
- Installation:
composer require hernandev/oauth2-sc2
- Usage - Asking for Authorization:
// aliasing classes.
use SteemConnect\OAuth2\Config\Config;
use SteemConnect\OAuth2\Provider\Provider;
// start a configuration object, passing SC2 application ID & secret:
$config = new Config('your.app', 'your-long-secret-id-here-keep-it-secret');
// define which OAuth scopes you need users to authorize:
$config->setScopes([
'login', 'vote', 'comment', 'comment_delete'
]);
// set the return/callback URL, so SteemConnect will redirect
// users back to your application.
$config->setReturnUrl('https://my-steem-app-is-awesome.com/login/return');
// create an OAuth provider instance, passing
// the configuration justs created:
$provider = new Provider($config);
// get the URL string that you will redirect to
// (you may use a freamework redirect or a header() call):
$provider->getAuthorizationUrl();
- Usage - Parsing the Return:
// just calling the parseReturn on the provider, will
// automatically exchange the access code by the actual access token:
$token = $provider->parseReturn();
- With the user token in hands:
// gets the actual token that will be used on requests.
$token->getToken();
// gets the expiration date, so you know the token
// is no longer valid.
$token->getExpires();
// gets the refresh token, which may be used to issue a new token,
// after the original one expired.
$token->getRefreshToken();
// gets the standard ID for the account athorizing your app,
// it means, this field retrieves the account @username.
$token->getResourceOwnerId();
- ResourceOwner Interface
// gets the resource owner instance.
$owner = $provider->getResourceOwner($token);
// now you can use any key you may
// see on steemd.com directly on that $owner object!!!
$owner->profile_json;
$owner->balance;
$owner->reputation;
// ....
- Technology Stack
Fully Object Oriented PHP, requirig at least PHP 7.1+ (no legacy versions).
Built on top of League's OAuth Client.
- Roadmap
This project will be the base for a PHP SDK for SteemConnect V2, so most new features will be done on the new repository.
For this project, both manual and automated tests are more than welcome.
- How to contribute?
My discord username is hernandev#5834, and just hernandev on almost any other social platform.
Posted on Utopian.io - Rewarding Open Source Contributors
Thank you for the contribution. It has been approved.
You can contact us on Discord.
[utopian-moderator]
Hey @omeratagun, I just gave you a tip for your hard work on moderation. Upvote this comment to support the utopian moderators and increase your future rewards!
click here.Congratulations @hernandev, this post is the forth most rewarded post (based on pending payouts) in the last 12 hours written by a Dust account holder (accounts that hold between 0 and 0.01 Mega Vests). The total number of posts by Dust account holders during this period was 13503 and the total pending payments to posts in this category was $2360.28. To see the full list of highest paid posts across all accounts categories,
If you do not wish to receive these messages in future, please reply stop to this comment.
Hey @hernandev I am @utopian-io. I have just upvoted you!
Achievements
Community-Driven Witness!
I am the first and only Steem Community-Driven Witness. Participate on Discord. Lets GROW TOGETHER!
Up-vote this comment to grow my power and help Open Source contributions like this one. Want to chat? Join me on Discord https://discord.gg/Pc8HG9x
I like this @hernanadev. I really look forward to a steemphp api ,that would mean a hell lot to me.
It's on the plans!
Update: Just included unit tests covering 100% the code base.