Git Product home page Git Product logo

Comments (8)

naoya avatar naoya commented on August 16, 2024

これタグの英語日本語混在関係なくて、SDK で login 確立できてない状態じゃないでしょうか。

自分の手元では再現しない & logout してから HTBHatenaBookmarkViewController を present すると上記のエラーになります。エラーメッセージ的にも、認証から 401 Not Authorized が返ってきてるよ、という風に見えます。

from hatena-bookmark-ios-sdk.

ninjinkun avatar ninjinkun commented on August 16, 2024

@wakinchan クライアントとサーバー両方でSignatureを組み立てる際にqueryパラメーターを使っているのですが、そのエスケープまわりでサーバーとクライアント(SDK)間に差異があるようです。はてなで調査いたします。
ちなみにサーバーサイドはPerlの OAuth::Lite::Util というモジュールを使っています。

@naoya ログイン後もSignatureが一致しない場合に401が返る場合があり、今回はそのケースのようです。はてな側でも再現を確認したので、こちらで調査いたします。

from hatena-bookmark-ios-sdk.

wakinchan avatar wakinchan commented on August 16, 2024

@naoya @ninjinkun ありがとうございます。よろしくお願いします。

from hatena-bookmark-ios-sdk.

naoya avatar naoya commented on August 16, 2024

おお、なるほどですね。よろしくお願いします。

from hatena-bookmark-ios-sdk.

ninjinkun avatar ninjinkun commented on August 16, 2024

サーバーサイドの実装を見直す必要があったので少し時間がかかっていますが、木曜の正式リリースまでには修正できそうです。

from hatena-bookmark-ios-sdk.

ninjinkun avatar ninjinkun commented on August 16, 2024

@wakinchan こちらサーバーサイドを修正して、日本語英語混じったタグでも追加できるようになりました。ご確認をお願いします。

from hatena-bookmark-ios-sdk.

ninjinkun avatar ninjinkun commented on August 16, 2024

以下詳細です。

http://tools.ietf.org/html/rfc5849#section-3.4.1.3.2 でSignatureを組み立てる際の同一キーのパラメータのソート方法が指定されているのですが、はてなの使っているOAuth::Liteというperlモジュールがこれに従っていなかったために発生した問題でした。

tags[]=java&tags[]=はてなブックマーク&tags[]=プログラミングというようなパラメータが渡ってきた際に

  • tags%5B%5D=%E3%81%AF%E3%81%A6%E3%81%AA%E3%83%96%E3%83%83%E3%82%AF%E3%83%9E%E3%83%BC%E3%82%AF
  • tags%5B%5D=%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0
  • tags%5B%5D=java

というエスケープ後のvalueでソートされた並びが期待されており、SDKもこの実装になっていました。しかしサーバーサイドでは以下のようにエスケープ前のvalueでソートされていたため、生成されたSignatureが違ってしまっていました。

  • tags%5B%5D=java
  • tags%5B%5D=%E3%81%AF%E3%81%A6%E3%81%AA%E3%83%96%E3%83%83%E3%82%AF%E3%83%9E%E3%83%BC%E3%82%AF
  • tags%5B%5D=%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%

from hatena-bookmark-ios-sdk.

wakinchan avatar wakinchan commented on August 16, 2024

@ninjinkun 混在していても正常にポスト出来ることを確認しました。分かりやすい解説ありがとうございます。ではクローズさせて頂きます。

from hatena-bookmark-ios-sdk.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.