2016-08-08 17 views
0

保護されたWPブログの投稿データを取得するためのAPI呼び出しを探しています。私はWP認証手続きをPHPからRに翻訳するのに苦労していますが、私はそのプロセスを完全には理解していないと考えています。ログインを促し認可エンドポイントへRCurl/HTTRを使用してWordPress APIコールを作成する

  1. 送るユーザー:

    のOAuthトークンを受領手続きの私の理解では、this pageから来 https://public-api.wordpress.com/oauth2/authorize?client_id=your_client_id&redirect_uri=your_url&response_type=code&blog=1234

  2. は、その後のコードとAPIでPOST要求を行います組み込まれた上記のリダイレクトURL:

$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;

その後、返します

{ 
    "access_token": "YOUR_API_TOKEN", 
    "blog_id": "blog ID", 
    "blog_url": "blog url", 
    "token_type": "bearer" 
} 

をしかし、私はここで、rで起動するようには考えています。これは再現可能な問題ではないことをお詫び申し上げます。私は、コードhereを使用しようとしましたが、私はかなり何が悪かったのかを把握することはできません。

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) 
+0

様々なAPIを使用して認証するために 'httr'の使用例については、ウェブを検索し、いくつかのコードを一緒に入れた後、最終的にはうまくいきません。私はつまらないという不満を理解しています。これまでに試したコードを投稿してください。今後のお手伝いをさせていただきます。 – cory

+0

これまで私が試したことで質問を更新しましたが、 'httr'を理解するかどうかは不明です。パッケージ内の「プリロード済み」API(_e.g。、_ 'ouath_endpoints(" google "))のいずれかを使用する必要がありますか? – arebearit

答えて

0

あり、特定のAPIのエンドポイントに組み込まれている...ので、あなたは、URLに自分自身を取得する必要はありません。私はワードプレスがそれらの1つではないので、あなた自身がoauth_endpointコールで作成しているものです。このような何かうまくいくかもしれない...しかし、私はワードプレスを持っていない、それをテストするためにアカウント...

wordpress <- oauth_endpoint(authorize = "https://public-api.wordpress.com/oauth2/authorize?client_id=your_client_id&redirect_uri=your_url&response_type=token&blog=1234", 
          access = "https://public-api.wordpress.com/oauth2/token") 

myapp <- oauth_app(key = 'your_client_id', 
        secret = 'your_client_secret_key') 

mytoken <- oauth2.0_token(wordpress, myapp) 
+0

そのコードをRで実行すると、このメッセージに '無効なリクエストがあります。戻ってもう一度やり直してください。 エラーコード:invalid_request エラーメッセージ:redirect_uri.の一致しません。 ブラウザで認証アドレスを実行すると、WP認証ページに移動します。 – arebearit

関連する問題