Instagram は警告なしに API を閉鎖しました。その理由は何ですか?また、それによって何が起こる可能性がありますか? Instagram が API へのアクセスを提供していない場合はどうすればよいですか? Instagram アドオンがサードパーティ アプリケーションからの API を閉じる

本日、インスタグラムは会社方針の大きな変更について声明を発表した。 このソーシャル ネットワークは、新しいサードパーティ開発者からの API を閉鎖し、既存の API をすべて監査する予定です。 この変更は、サードパーティのリソースを通じて Instagram フィードを表示したり、自動的に「いいね!」を付けたり、Instagram に再投稿したりできるすべてのアプリケーションに影響します。

Instagram は 2011 年に開始されましたが、作成者自身も、当時は自分たちが作成したプラットフォームのすべての機能を開発するための十分なリソースがなかったことを認めています。 オープン API により、サードパーティ開発者はソーシャル ネットワークの機能に基づいた何百ものアプリケーションを作成できるようになりました。 4 年後、Instagram はこの機会を閉じることを決定しました。

TechCrunchのジャーナリストによると、まず第一に、これはInstagramが利益を増やすのに忙しいという事実によるものである。 少なくとも、同社の最近の行動はすべて、まさにこれを示しています。 9 月初旬には、ユーザー フィードでコンテンツを公開する可能性も拡大し、少し後にはループ動画を作成できるソーシャル ネットワーク Boomerang も登場しました。

Instagram 自体が作成したアプリケーションも、この動きのもう 1 つの理由です。 Boomerang の前に、このソーシャル ネットワークはさらに 2 つのアプリをリリースしました。1 つは写真コラージュ用の Layouts、もう 1 つはタイムラプス用の Hyperlapse です。 これに関連して、ソーシャル ネットワークの主要な機能を繰り返したり補完したりするサードパーティ アプリケーションが負担となります。

Instagram は本日より、新しいアプリのフィード API へのアクセスを無効にしました。 12 月 3 日から、更新されたポリシーに従って、すべての既存の申請の審査と新規申請の審査が開始されます。 2016 年 6 月 1 日より、すべてのレガシー アプリケーションは新しい API 規約に同意する必要があります。

この削減は主に、Instagram が存在しないデバイスで Instagram フィードを表示できるアプリケーションに影響します。 したがって、6 月 1 日までに、変更は Retro、Flow、Padgram、iPad 用 Pictacular、Webbygram、Webstagram、Instagreat、デスクトップ用 Itsdagram などのアプリケーションに影響します。

こうした変化には良い面もあります。 ソーシャル ネットワーク ユーザーは、サードパーティ アプリケーションを介して自動いいねや購読を受信/設定する機能を無効にすると、プロフィール統計の「水増し」を可能にする多くのサービスが排除されることに注意しています。 大まかに言えば、Instagram ストアはターゲット以外のユーザーの購読を停止します。

Instagram は 2012 年に Facebook に 10 億ドルで買収されました。現在、このリソースのユーザー ベースは 4 億人を超えています。

ウクライナのインスタグラムの視聴者は約80万人。 また、観客の約66%は女子です。 ソーシャル ネットワークのウクライナの視聴者について詳しくは、先月公開した記事をご覧ください。

間違いに気づきましたか? それを選択してクリックします Ctrl+Enter私たちに知らせるために。

Instagram が以前の予定通り 12 月に API を閉鎖せず、今すぐに API を閉鎖したというニュースは、今後の変更についての警告がどこにもなかったため、誰もが本当に驚いたものでした。 しかし、一部のユーザーは、Instagram が API へのリクエスト数を最大 25 倍 (5000 から 200) 制限することでユーザーを激怒させた 3 月 31 日に、API を閉じるための前提条件を発見しました。
4 月 2 日にはアクセスがすでに部分的にブロックされ、4 月 5 日には Facebook パートナーではないほぼすべてのサードパーティ リソースが重大な制限に直面しました。 これは何に影響を与えましたか?

ユーザーアカウントを分析する分析サービス 特にLiveDune, 今後、これまでのようにInstagramから情報を受け取ることはできなくなります。つまり、アカウントの完全な分析は不可能になります(唯一の例外はビジネスアカウントです)。視聴者や購読者の種類の詳細な分析や、ハッシュタグの検索と分析も現在は不可能です。
コメントの監視は利用できず、購読者のアンロードは非現実的な作業になりました。以前はアカウントに誰がいつ購読したかを表示していたモバイル アプリケーションがフリーズしました。 近い将来、プライベート API を介して購読者を確認できなくなるという想定があり、それに応じて、プライベート API を介して動作するすべてのサービス (ブロガーをチェックするサービスを含む) も、近い将来、取り返しのつかないほど忘れ去られることになるでしょう。 このような変化を考慮して、多くの人がすでにビジネス アカウントへの切り替えを真剣に考え始めています。これは、自分のアカウントを詳細に分析し、サービス全体を使用する幅広い機会を得るための唯一の選択肢だからです。

親会社であるFacebookは現在、ケンブリッジ・アナリティカ社との最近の不祥事により大パニックに陥っているが、ケンブリッジ・アナリティカ社はソーシャルネットワークのルールを回避し、自らの目的を達成するためにあえてユーザーアカウントを利用した。 当初、Facebookの深部から約5,000万のアカウントが流出したと報告されていたが、最新のデータによると、流出量はさらに驚くべきものであることが判明し、すでに87を超えていたことが判明した。百万アカウント! したがって、Facebook 側のパニックは非常に理解できます。これらすべてが会社の評判に影響を与えざるを得ず、最良の形ではないからです (Facebook の資本金でさえ、過去 2 週間で 600 億ドルも減少しました)。 APIの予期せぬ衝撃的な閉鎖は、貴重なユーザーデータの保護を強化するための同社の試みにほかならない。

しかし、Facebookによるそのような決定は、予期せぬ革新が検索サービスの機能に非常に悪影響を与えるため、マーケティング会社、サービス会社(顧客のレビューや苦情の追跡は今後非常に問題となるだろう)、進歩的な開発者の仕事を大幅に複雑にする可能性がある。購読者のレビューと分析。

次に何を期待しますか? 現時点ではインスタグラムの代表者は正式な回答やコメントを出しておらず、フェイスブックのウェブサイトもまだ秘密のベールを解いていないため、これはすでに時間の問題だ。

そして、それは続けられそうな気がしました。

広告、ビジネス、その他の分野で最も人気があり収益性の高いプラットフォームが Instagram であることは周知の事実です。 当初は特定のサイズ(アスペクト比のことです)の写真のみをアップロードでき、当時のソーシャルネットワークにまったく存在しなかったサービスになった理由はまったく不明ですが、事実は次のとおりです。事実。 このことを考慮して、誰もが Instagram プラットフォームに侵入し、そこから最大数の視聴者を獲得しようとしていますが、これはもちろん手動ではありません。 そして、Instagram はネットワークをクリーンな状態に保つために、ボットやスパマーなどのアクセスを厳しくブロックします。

  1. 最も便利な機能 (投稿と削除) は、Instagram モバイル アプリケーションからのみ利用できます。新しいバージョンごとに更新されるアプリケーションからキーを取得する必要があるため、リクエストをエミュレートするのは困難です。
  2. Web版は切れてしまいましたが、いいね、コメント、コメント削除機能があるのが嬉しいです
  3. API はありますが、それを取得する手順はイライラするほど長く、スパマーやボットには間違いなくこのオプションがありません。 さらに、API の規則が変更される瞬間も多くありましたが、これは常に便利であるとは限りません。
購読したり「いいね」を付けたりできる別のスパムボットを作成するために Instagram に関与したわけではありませんが、Instagram API を取得することに煩わされたくなかったので、Instagram と対話するための独自のライブラリを作成する必要がありました。

Instagram の Web バージョンを使用することは、次の 2 つの理由から非常に快適であると言いたいと思います。

1. 次のような GET リクエストを送信すると、任意のページに関する簡単な情報を取得できます。

https://instagram.com/zuck/?__a=1
応答は、利用可能な情報、ページの最初の 10 件の投稿などを含む JSON です。 非常に素晴らしい。

2. 簡単な情報だけでは不十分な場合は、別の良いニュースがあります。 次のような特定のリクエストを使用して、写真、サブスクリプション、コメントを再アップロードできます。

https://www.instagram.com/graphql/query/?query_id=17888483320059182&variables=...
, ここで、変数は JSON 形式で処理するために変数に渡されます。 レスポンスもJSONです。 そして一般に、これらすべてが GraphQL で機能することは明らかなので、リクエストがどのように処理されるかを理解するには、Google で調べることもできます。

ライブラリ全体はこの知識に基づいて構築されています。 誰かの役に立つかもしれないので、どのように使用できるかを簡単に説明します。 ちなみに、そこのリポジトリに BSD 3 ライセンスを指定しました。問題がないよう変更したほうがよいでしょうか。

インストール

インストールする必要はありません。 より正確に言うと、ライブラリが 1 つのファイルだけで構成されている場合、あらゆる種類の setup.py を作成したりパッケージ化したりするのが面倒でした。 したがって、単に instagram.py ファイルが存在し、次のように接続されています。

インスタパーサーをインポートする

それの使い方?

Instagram とのやり取りは、承認の有無にかかわらず可能です。 承認がなければ、購読や購読者を表示する機能はなく、当然ながら、何かに「いいね!」をしたり、何かにコメントしたりすることもできません。 承認に関する唯一の制限は、投稿の投稿と削除が不可能であることです。

instaparser.agents からエージェントをインポート instaparser.entities からインポート アカウント エージェント=エージェント() アカウント=アカウント("ズック") エージェント.更新(アカウント) メディア=エージェント.get_media(アカウント, カウント=100) メディア内の m: print( m)
ご存知のとおり、このスクリプトはマーク ザッカーバーグのページに関する情報をダウンロードし、彼のページから最新の 100 件の投稿をダウンロードして画面に表示します。

私が書かなかったらと言いたい。

Agent.update(アカウント)
その場合、ザッカーバーグのページに関する情報がまったく知られていなかったため、投稿を読み込むことは不可能でした。

instaparser.agents から AgentAccount をインポート instaparser.entities から import Account Agent=AgentAccount("oleg_yurchik", "imasuperpassword") Agent.update() account=Account("zuck") Agent.update(account) # など。
これはいわゆる こんにちは世界!。 またはクイックスタート。

それでは、さらに詳しく説明します。

実際、Instagram には 6 つのエンティティしかありません。

  1. アカウント
  2. 地理位置情報
  3. コメント
  4. ハッシュタグ
  5. ストーリー
他のものはすべて、いいね、購読、購読者などのエンティティの単なるリストです。 そして、各エンティティには独自のクラスがあります。 アカウントの場合 - アカウント、投稿 - メディア、位置情報 - 場所、コメント - コメント、ハッシュタグ - タグ、ストーリー - ストーリー。 また、作業する前に、それぞれ (コメントを除く) を更新する必要があります。 つまり、すべての投稿をダウンロードし、「いいね!」を付けて地理位置情報のリストを取得したい場合は、次の手順を実行する必要があります。

instaparser.agents import AgentAccoun から、agent=AgentAccount("oleg.yurchik", "anothersuperpassword") Agent.update() media=agent.get_media(count=agent.media_count) places= メディア内の m:agent.like(m) Agent.update(m) if m.location: location.append(m.location)
また、後で特定の地理的位置に関する最新の 10 件の投稿を取得する必要がある場合は、次の操作を行う必要があります。

Agent.update(location) media=agent.get_media(location, count=10)
たとえば、すべての購読者を取得する必要がある場合、プログラムは各アカウントを更新することになり、これは良くないため、初期化からアカウント更新機能を削除する必要がありました。

このライブラリはリクエスト ライブラリをベースにしており、リクエストの追加パラメータをメソッドに渡すこともできることが特徴の 1 つだと思います。 このアイデアは、Instagram から初めて 429 エラーを受け取ったときに思いつきました。 プロキシを使用する必要がありました。

たとえば、次のようにすることができます。

Media=agent.get_media(count=agent.media_count, settings=("プロキシ": ("https": "127.0.0.1:80")))
ここで 127.0.0.1:80 - プロキシを指定できます

また、もう 1 つの機能として、エラー インターセプトがあると思います。

Agent クラスと AgentAccount クラス (Instagram と通信するクラス) には、ツリーのように構成された辞書があります。 例外アクション。 例外クラスをキーとして保存し、関数を値として保存します。 何らかのエラーが突然発生した場合、それはインターセプトされ、辞書の関数が実行されます。 この関数には、例外オブジェクトとリクエストの実行に使用されたパラメータが渡されます。 何らかのアクションを実行し、変更された (または変更されていない) リクエスト パラメーターを返すことができます。 リクエストは再度実行されます。 そして、Agent.repeats パラメーターで指定された回数だけ繰り返されます。 デフォルト値は 1 です。

また、メモリのオーバーフローを心配する必要もありません。

各エンティティ クラスには、このクラスのすべてのオブジェクト (またはサブクラスのオブジェクトも) が格納される辞書があります。 したがって、たとえばすでに作成されているアカウントを誤って作成した場合、コンストラクターは以前に作成したアカウントへのリンクを返します。

そして最後に、いくつかの決定により、いくつかの問題も発生したと言いたいと思います。

  1. たとえば、オブジェクトを再作成するときの問題です。 アカウントを突然仕事用アカウントとして使用し、それを通じてやり取りしたい場合、そのアカウントが以前に通常のアカウントとして作成されていた場合、再度作成することはできません。 これを解決する方法がまだわかりません。
  2. エラー捕捉は時々非常に奇妙な動作をすることがあり、完全にテストされていません。
この解決策が誰かにとって役立つことを心から願っています。有益なコメントや、この作業を完了するのに役立つことを願っています。 私が言及した記事では、PHP でのそのようなスクリプトの例が示されていましたが、これは情報を収集するだけであり、私の意見では、古いバージョンの Instagram Web インターフェイスでのみ機能しました。

ご清聴ありがとうございました。

トピックの続き:
ウィンドウズ

おそらく、Web サイトの新しく新鮮な外観を探しているでしょう。 もしそうなら、素晴らしいニュースがあります。 このコレクションでは...