Ich bin auf der Suche nach einem API-Aufruf, um die Post-Daten eines geschützten WP-Blog zu greifen. Ich habe ein paar Probleme damit, das WP-Authentifizierungsverfahren von PHP auf R zu übersetzen, teilweise weil ich den Prozess nicht vollständig verstehe.Machen Sie WordPress API Anruf mit RCurl/HTTR
Mein Verständnis des OAuth-Token-Empfang Verfahren stammt aus this page:
- Senden Benutzer einer Berechtigungs Endpunkt, der ein Login aufgefordert:
https://public-api.wordpress.com/oauth2/authorize?client_id=your_client_id&redirect_uri=your_url&response_type=code&blog=1234
- Dann machen Sie eine
POST
Anfrage an die API mit dem Code in die oben Umleitungs-uRL eingebaut:
$curl = curl_init('https://public-api.wordpress.com/oauth2/token'); curl_setopt($curl, CURLOPT_POST, true); curl_setopt($curl, CURLOPT_POSTFIELDS, array( 'client_id' => your_client_id, 'redirect_uri' => your_redirect_url, 'client_secret' => your_client_secret_key, 'code' => $_GET['code'], // The code from the previous request 'grant_type' => 'authorization_code' )); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); $auth = curl_exec($curl); $secret = json_decode($auth); $access_key = $secret->access_token;
, die dann zurückgibt:
{
"access_token": "YOUR_API_TOKEN",
"blog_id": "blog ID",
"blog_url": "blog url",
"token_type": "bearer"
}
aber ich habe keine Ahnung, wo in r zu starten. Ich entschuldige mich, dass dies kein reproduzierbares Problem ist. Ich habe versucht, den Code here, zu verwenden, aber ich kann nicht ganz herausfinden, was schief gelaufen ist:
app_name <- 'myapp'
client_id <- 'your_client_id'
redirect_uri <- 'your_redirect_url'
client_secret <- 'your_client_secret_key'
resource_uri <- #IDK what this is
oauth_endpoint(authorize = "https://public-api.wordpress.com/oauth2/authorize?client_id=your_client_id&redirect_uri=your_url&response_type=code&blog=1234",
access = "https://public-api.wordpress.com/oauth2/token")
wordpress_endpoint <- oauth_endpoints('wordpress')
# Create the app instance.
myapp <- oauth_app(key = 'your_client_id',
secret = 'your_client_secret_key')
mytoken <- oauth2.0_token(wordpress_endpoint, myapp,
user_params = list(resource = resource_uri),
use_oob = FALSE)
Nach der Suche im Internet nach Beispiele für die Verwendung 'httr' mit verschiedenen APIs zu authentifizieren und die Zusammenstellung einige Code das funktioniert letztendlich nicht ganz, ich verstehe die Frustration, stecken zu bleiben. Bitte poste den Code, den du bisher versucht hast, damit wir dir weiterhelfen können. – cory
Also habe ich die Frage mit dem, was ich bisher versucht habe, aktualisiert, aber ich bin mir nicht ganz sicher, ob ich 'httr' verstehe. Müssen Sie eines der "vorinstallierten" APIs im Paket verwenden (z. B. _ 'ouath_endpoints (" google "))? – arebearit