+15
-4
x.py
+15
-4
x.py
···
124
125
except requests.exceptions.HTTPError as e:
126
if response.status_code == 401:
127
-
logger.error("X API authentication failed for posting - check your bearer token permissions")
128
elif response.status_code == 403:
129
-
logger.error("X API posting forbidden - may need elevated access or different permissions")
130
elif response.status_code == 429:
131
logger.error("X API rate limit exceeded for posting")
132
else:
133
logger.error(f"X API post request failed: {e}")
134
logger.error(f"Response content: {response.text}")
···
199
print(f"Test failed: {e}")
200
201
def reply_to_cameron_post():
202
-
"""Reply to Cameron's specific X post."""
203
try:
204
client = create_x_client()
205
···
211
212
print(f"Attempting to reply to post {cameron_post_id}")
213
print(f"Reply text: {reply_text}")
214
215
result = client.post_reply(reply_text, cameron_post_id)
216
···
218
print(f"✅ Successfully posted reply!")
219
print(f"Reply ID: {result.get('data', {}).get('id', 'Unknown')}")
220
else:
221
-
print("❌ Failed to post reply")
222
223
except Exception as e:
224
print(f"Reply failed: {e}")
···
124
125
except requests.exceptions.HTTPError as e:
126
if response.status_code == 401:
127
+
logger.error("X API authentication failed for posting - check your bearer token")
128
+
logger.error(f"Response: {response.text}")
129
elif response.status_code == 403:
130
+
logger.error("X API posting forbidden - likely app permissions issue")
131
+
logger.error("Check that your X app has 'Read and Write' permissions enabled")
132
+
logger.error(f"Response: {response.text}")
133
elif response.status_code == 429:
134
logger.error("X API rate limit exceeded for posting")
135
+
logger.error(f"Response: {response.text}")
136
else:
137
logger.error(f"X API post request failed: {e}")
138
logger.error(f"Response content: {response.text}")
···
203
print(f"Test failed: {e}")
204
205
def reply_to_cameron_post():
206
+
"""
207
+
Reply to Cameron's specific X post.
208
+
209
+
NOTE: This requires OAuth User Context authentication, not Bearer token.
210
+
Current Bearer token is Application-Only which can't post.
211
+
"""
212
try:
213
client = create_x_client()
214
···
220
221
print(f"Attempting to reply to post {cameron_post_id}")
222
print(f"Reply text: {reply_text}")
223
+
print("\nNOTE: This will fail with current Bearer token (Application-Only)")
224
+
print("Posting requires OAuth User Context authentication")
225
226
result = client.post_reply(reply_text, cameron_post_id)
227
···
229
print(f"✅ Successfully posted reply!")
230
print(f"Reply ID: {result.get('data', {}).get('id', 'Unknown')}")
231
else:
232
+
print("❌ Failed to post reply (expected with current auth)")
233
234
except Exception as e:
235
print(f"Reply failed: {e}")