Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add X limit handling and Logs Export button #903

Merged
merged 28 commits into from
Feb 1, 2024

Conversation

Soare-Robert-Daniel
Copy link
Contributor

@Soare-Robert-Daniel Soare-Robert-Daniel commented Jan 3, 2024

Summary

Changelog:

  • Add conditions to respect the X limit. Once the limit is reached, we will display a log of the limits and their reset time. Until the limit is reset, now sharing will be done.
  • Add a button that exports the logs as a txt file and update the structure display to reflect the content from the file. This should help the support team.
  • Added the param plugin_version for Twitter/X sign URL to pass the authorization process.
  • Added new log messages to encourage the user to use his own API keys.
  • When the user shares the post via our app, the sharing will done by the server. The plugin will send an authorization token and the post data to our endpoint.
  • Sharing As Image Post will be available only for users who use their API key. The logic for uploading the images to X/Twitter will not be ported to the server. We should update this article to include the information

Note

Make sure to read https://github.com/Codeinwp/rop-auth-service/pull/78 to get the full picture of the change.

Screenshots

Before

image (1)

After

image

image

image

Testing

Things to look for:

  • Sharing As Image Post will be available only for users who use their API key (Use My Own Keys)
  • Make sure the X/Twitter post sharing is working when for both options of using your own API key OR signing in with our app.
  • If you use the Sign In option, you should not have any official X/Twitter credentials registered by the plugin in your account profile. You can check this by inspecting the network request, as in the image below. You should have only the rop_auth_token, but if you use the option Use My Own Keys, then you should see values with the prefix oauth_ instead of rop_auth_token
Screenshot 2024-01-15 at 17 32 30

Caution

If you find an issue regarding the authentication values, please send the values in private.

Another thing to test: use the current version of RoP from WP.org, introduce your Twitter API via Sign In, then switch to the build from this PR. With this procedure, you will be connect to the current version of server (not the new one mentioned in above descriptions).

Try to share a post, you will receive an error about time limit reached, when you try again, you will get a message about when the time limit reset:

image

@Soare-Robert-Daniel Soare-Robert-Daniel marked this pull request as ready for review January 5, 2024 13:42
Copy link

github-actions bot commented Jan 5, 2024

Plugin build for 7a35cc2 is ready 🛎️!

@irinelenache
Copy link

irinelenache commented Jan 17, 2024

@Soare-Robert-Daniel Tested and here is what i found:

You can check on my instance:

 Admin area URL: https://rop-x-update.s3-tastewp.com/wp-admin 
 Username: irinel 
 Password: zlWFV9umnX4 

@Soare-Robert-Daniel
Copy link
Contributor Author

  • I managed to share multiple posts using a free account and no API keys https://vertis.d.pr/i/C5LYQ9. I think because I already had some API keys generated, they got automatically linked in ROP, because this name 1704849955729629185IrinelOld (the application name set in twitter developer settings) appeared when i had to authorize the access.

Because the app was created with the testing account.

Since the stagging website used the same credentials from the testing account, when you regenerated the API keys, the one from stagging became obsolete.

  • If i add the wrong API keys, i'm also getting a warning https://vertis.d.pr/i/B4XQTL
  • I didn't manage to connect the account with the Authentication tokens or OAuth 2.0 Client ID and Client Secret. It only connected with the Consumer Keys but the account appeared as inactive https://vertis.d.pr/v/arCJ7H

To my knowledge, we do not support those. Only the Consumer Keys.

Also, the reason you saw the error about services was pretty tricky to debug.

When you remove via a single action (the delete option that appears when making the account inactive), we do not remove all the data tied to that account. A function did not have a proper checking for it and gave the error.

Regarding the inactive state, I see that in the code it is done on purpose here:

if ( ! empty( $authenticated_services ) ) {
$user['active'] = false;
}

@irinelenache
Copy link

irinelenache commented Jan 30, 2024

@Soare-Robert-Daniel Had another look and there is only one issue left:

 Admin area URL: https://ropx.s3-tastewp.com/wp-admin 
 Username: irinel 
 Password: eMvoZjhz0VE 

@Soare-Robert-Daniel
Copy link
Contributor Author

@irinelenache, now it should work.

Also, I updated the staging server to use the same credentials as the normal app.

If you try to post with the Sign In, you will now get the quota limit from the real app.

You will get something like this:

image

ℹ️ If you test it when the quota reset, you might not see it.

@irinelenache
Copy link

@Soare-Robert-Daniel Checked again and everything's fine now 🚀

@Soare-Robert-Daniel Soare-Robert-Daniel merged commit 8d89541 into development Feb 1, 2024
6 checks passed
@Soare-Robert-Daniel Soare-Robert-Daniel deleted the feat/x-limit branch February 1, 2024 07:50
@pirate-bot
Copy link
Contributor

🎉 This PR is included in version 9.0.23 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

@pirate-bot pirate-bot added the released Indicate that an issue has been resolved and released in a particular version of the product. label Feb 1, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
released Indicate that an issue has been resolved and released in a particular version of the product.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

A function to download error log that can be easily shared with us
5 participants