質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Instagram API

Instagram APIは、写真共有SNSであるInstagramの投稿写真をWebサイトに掲載するためのAPIです。取得することでWebサイトと連携し、自動的に投稿写真を表示することができます。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

Q&A

解決済

1回答

6796閲覧

Instagramをクロールする仕様に対するリスクについて

peanuts

総合スコア34

Instagram API

Instagram APIは、写真共有SNSであるInstagramの投稿写真をWebサイトに掲載するためのAPIです。取得することでWebサイトと連携し、自動的に投稿写真を表示することができます。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

0グッド

2クリップ

投稿2017/06/02 06:21

前提

最近、とある新規サービスの開発に参画し、エンジニアサイドは自分一人という状況にあります。
とはいえ、経験も浅く、要件定義に関しては不安も多く、今回質問させていただきました。

前提として、プロジェクトの構成は以下のような形です。

  • 企画・営業(プロマネ含む) 3人
  • デザイナー(少しフロントのコーディングできる) 1人
  • エンジニア(バックエンドをRailsで開発する) 1人

企画が既に煮詰まりつつあるところに参画したため、ある程度、企画サイドから想定するサービスの仕様は作られており、エンジニアの自分としてはその企画を見つつ、現実的なところとリスクと照らし合わせながら要件定義を立てつつ実装を進め始めています。

とはいえ、明らかにセキュリティ面や倫理的にリスクが高いであろう部分もあり、エンジニアとしても無責任な実装をしてサービス運用時に問題となることは避けたいと考え、要件定義の段階で企画サイドへの助言をしたい部分があります。

Instagramの情報をクローリングするリスクと対策

サービスの仕様的に、Instagramの特定のアカウントのフォロー・フォロワー一覧を取得しなくてはいけない部分やInstagramに投稿されたメディアの特定のタグを検索して表示する部分があります。

その要件に対して企画側が想定している実装として以下のような認識であることがわかりました。

  • いち早く当サービスをリリースしたいが、Instagram APIの審査の厳しいと聞いているので結構時間がかかりそう。なら、いっそのことクローリングして各種情報を取ってくる実装にしたい。
  • Instagram側にログインしないと取れない情報もあるのでInstagramのID, Passwordも当サービスに入力してもらって、クローラーでログインの上、情報を取ってくればいいのでは。

リスクと感じる点

  • ユーザーのInstagramのプレーンなID, Passwordを当サービスで情報保持することは限りなくアウトと感じる(家計簿アプリなどの銀行連携と同じようにユーザーとしてもそれらを入力させることで不信感を抱く可能性が高い)
    • 一度暗号化して保存して, クロールのたびに復号化して利用するということも可能と思う
    • しかし、他サービスの認証情報を保持することのリスクは非常に高いという認識
  • クロールすることのコストは高いと感じていて、ユーザー数と比例して処理が発生するため運用がつらいのではないか

自分が企画サイドへ助言したいこと

  • InstagramのWebAPI利用の審査は厳しいが、自らもその審査項目を満たせるように努力して認可を得るよう尽くしたい
  • その上で、WebAPIの申請をし、公式APIから各種情報を取ってくるような実装を可能としたい
    • APIにはサンドボックスモードがあることも伝え、API利用申請時に開発中の当サービスのUXやユースケースをInstagramの審査機関側に適切に伝えられるようなプロトタイプを組めるよう開発を進めていくことも押さえる

お聞きしたいこと

今回のケースは、みなさんならどのように解決しますでしょうか?
何か説得力に欠ける、であったり、そもそもクロールはサービスを運用していく上で倫理的にまずいであったり、そういった先を見据えての意見などがいただけると有難く存じます。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

「他人のサービスのID/Pass」を預かるというのも一発アウトに近いものと感じますが、それに加えてInstagramのクローリングは規約違反です(利用規約)。

  1. Instagramは、自動装置などを使って本サービス上のあらゆるコンテンツ(利用者のプロフィールや写真を含みますが、これに限定されません)を巡回、収集、キャッシングしたり、これにアクセスしたりすることを禁止しています(ただし、標準的な検索エンジンプロトコルまたはInstagramが明示的に認めている検索エンジンが使用する技術を用いる場合を除きます)。

仕事としてやる以上、「規約違反でいつInstagram側にブロックされるかわからない」のでは手を付けないほうが賢明です。

投稿2017/06/02 06:31

編集2017/06/02 06:32
maisumakun

総合スコア145121

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

peanuts

2017/06/02 12:33

クローリングが規約違反という点についてご教示いただきありがとうございます。 正規の方法でデータを得るように方針を進めたいと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問