50872


はてなブックマークのapiを使って自身のブックマークしたURLを使ってbotを作りたい。

Pythonを使って自分のブックマーク情報にアクセスしたいのですが、OAuth認証を使用して行う事は出来ますか？ドキュメントを読んだのですがそのような記載が見当たらないので困っています。  
アクセストークンは取得しています。

ここのページに書いてあるような事をOAuthを使ってやりたい。  
[WSSE認証を用いたブックマークデータの取得](http://b.hatena.ne.jp/help/entry/api)

というのを見つけたのですが、こちらの記事のようにOAuth 認証を使用して行う事は可能ですか？  
WSSE認証を使ってやれば良いと思うのですが、こちらはサービス終了の予定はないでしょうか？ 可能であればせっかく取得したOAuth認証で行いたいです。

以下のURLに書いてある`http://api.b.hatena.ne.jp/{version}/my/bookmark`にgetでアクセスすれば自身のブックマークしたデータをが全件Jsonか何かで返って来ると思ったのですが、何故か引数にURLが必要だと言われます。こちらはURLが欲しくてアクセスしているのにURLが必要との事で一体なんのURLが必要なのかわかりません。

そして`認証したユーザーのブックマーク情報を取得します。`この意味もいまいち簡素でわかりません。私の理解とドキュメントにかなりのズレがあると思います。

一体このドキュメントにはなんのことについて書かれているのでしょうか？  
<http://developer.hatena.ne.jp/ja/documents/bookmark/apis/rest>

ここで指すブックマーク、エントリーについて分からないのだと思います。  
どこのブックマークなのか、どこのエントリーのことなのかわかりません。  
<http://developer.hatena.ne.jp/ja/documents/bookmark/apis/rest/datatypes#url>

エンジニアの方々教えてくださると幸いです。  
よろしくお願いします。

**追記**  
回答して下さった事を実践しようとアクセストークンを取得したので、ユーザ情報（自分の）を取得するためにgetリクエストを以下のURLに送りました。

**前者**  
`http://api.b.hatena.ne.jp/1/my`ドキュメントに沿って送って見ると以下のエラーが出ました。

**コード**

[code]

    from requests_oauthlib import OAuth1Session, OAuth1
    import requests
    
    auth = OAuth1(アクセストークン各種)
    print(requests.get('http://api.b.hatena.ne.jp/1/my', auth=auth).content)
    
[/code]

**実行結果**  
`b'403 Insufficient scope'`  
アクセストークン取得時にスコープの所を入力したのですが、許可が足りないと言われます。  
<http://developer.hatena.ne.jp/ja/documents/auth/apis/oauth/scopes>

`SCOPE = {'scope': 'read_public,write_public'}`

**後者**  
なぜかこちらに載っているURLでgetリクエストと出したら出来ました。  
<http://developer.hatena.ne.jp/ja/documents/nano/apis/oauth>

どうやら前者はread privateが必要なようです。  
<http://developer.hatena.ne.jp/ja/documents/bookmark/apis/rest/my#get_my>

納得です。


CC BY-SA 4.0
2018-12-03T13:24:29.297
50870
2020-07-27T05:30:54.430
2020-07-27T05:30:54.430
754
22565
question
python oauth webapi
はてなブックマークREST APIを使ってブックマーク情報を取得したい


結論から述べると、自分のブックマーク一覧を取得するには、OAuthのAPIではなく以下のAPIを使うとよいようです。これはRSSによるAPIなので、特別な認証なしにURLにアクセスするだけで利用できます。

  * [はてなブックマークフィード](http://developer.hatena.ne.jp/ja/documents/bookmark/misc/feed)

ただし、これはユーザー名が分かっていないと使用できませんので、先に[ユーザー情報API](http://developer.hatena.ne.jp/ja/documents/bookmark/apis/rest/my#get_my)で自分のユーザー情報を取得します。こちらはOAuth認証が必要です。

* * *

ドキュメントにある「ブックマーク情報」が何のことか分かりにくい問題については、[データの書式](http://developer.hatena.ne.jp/ja/documents/bookmark/apis/rest/datatypes)ページがヒントになるようです。そのAPIで取得できる「ブックマーク情報」とはこのページに載っているブックマークデータのことで、それによるとあるユーザーが行った「1件のブックマーク」についての情報が取得できるものです。そのAPIはユーザーのブックマークを全件取得するのではなくあくまで1件の情報を取得するもので、URLが必要と言われるのは、そのユーザーが行ったどのブックマークの情報を取得するのかを指示する必要があるためです。

## 追記に関して

前者と後者では取得できる情報が違います。前者は後者の情報に加えて`is_oauth_twitter`などの情報が取得できるようになっています。

実際に試していないのでこれは推測ですが、前者は`read_public`ではなく`read_private`のscopeが必要かもしれません。


CC BY-SA 4.0
2018-12-03T14:56:36.460
50872
2018-12-04T10:18:14.430
2018-12-04T10:18:14.430
30079
30079
50870
answer