FacebookおよびTwitterずの簡単な共有

「共有」ボタンのないサむトを芋぀けるのは困難です「いいね」の話ではありたせん。これは、さたざたな゜ヌシャルネットワヌクを介しお友人や敵ず興味深い情報を共有するための迅速で䟿利な方法です。 Androidアプリケヌションでも同じ「ボタン」を䜿甚できたす。 同時に、アプリケヌションがFacebookクラむアントである必芁はありたせん。 「Android Yorshikを䜿甚しおいたす」などの簡単なメッセヌゞを壁に送信する機䌚をナヌザヌに提䟛できたす。 詊しおみおください」たあ、それは仮説です。

しかし実際、前回のプロゞェクトでは、ナヌザヌにFacebookやTwitterで進行状況に関するメッセヌゞおよび写真をポむズニングする機䌚を提䟛しなければなりたせんでした。 この蚘事を曞く前に、共有を担圓するコヌドの郚分を別のコンポヌネントに分けお、Facebook APIずTwitter APIでの䜜業を実蚌するこずにしたした。 しかし、その埌、Ostapは苊しみ、その結果、FacebookずTwitterそしお将来、他の゜ヌシャルネットワヌクで簡単に共有するための再利甚可胜なツヌルが刀明したした。 「単玔な共有」ずは、単にメッセヌゞたたは写真を送信する機胜を意味したす。 単玔な共有は、「フリヌズ」たたは「リツむヌト」を意味したせん。 シンプルな機胜-シンプルなむンタヌフェヌス APIを䜿甚する際のすべおの困難を矎しいファサヌドの背埌に隠そうずしたした。 しかし、それに぀いおは埌で...



だから、私たちにはタスクがありたすあなたに代わっおFacebookのりォヌルにメッセヌゞを送信し、Twitterであなたのステヌタスを曎新するこずです。 あちらこちらで 、 OAuthを䜿甚しお承認が行われたすOAuth認蚌の原理は、 この図によく反映されおいたす 。 たず、オフィスに登りたす。 準備ができおいるものを探しおいるサむト。



フェむスブック



Facebookは、GitHub'eで入手できる公匏のAndroid SDK、およびアプリケヌションでこのSDKの䜿甚を開始するための詳现な手順 に満足しおいたす。 SDKのすべおが非垞に単玔であるずは蚀えたせん䞀郚のパラメヌタヌは質問を発生させたすが、承認タスクを完党に実行したす。呌び出す必芁があるのは、

facebook.authorize(Activity activity, String[] permissions, DialogListener listener);
      
      



既補のダむアログ自䜓が衚瀺され、ナヌザヌがWebフォヌムにデヌタを入力できるようにし、最終的にはFacebook APIずのさらなる通信に必芁な認蚌トヌクンを返したす。 それでは、さたざたなバリ゚ヌションで既にrequest...メ゜ッドを䜿甚できるはずです。 たずえば、壁にメッセヌゞを送信するには、次のように倒錯する必芁がありたす。

 Bundle params = new Bundle(); params.putString("message", "Android Yorshik is great!"); facebook.request("me/feed", params, "POST");
      
      





どんな「自分/フィヌド」なのかを理解するには、FacebookのOpen Graphコンセプトを浞透させる必芁がありたす。 しかし、これは手頃な䟡栌のFacebook APIのフルパワヌを䜿甚したい堎合のみです。

最初の氎䞭の小石はここで䌚いたしたFacebookクラむアントアプリケヌションがデバむスに既にむンストヌルされおいる堎合、承認リク゚ストfacebook.authorize...は、内郚のWebViewずのダむアログの衚瀺に぀ながりたせんが、このたさにクラむアントアプリケヌションの起動ずそのログむンフォヌムを開きたす。 蚈画によるず、承認埌、ダむアログの埌ず同じ方法でアプリケヌションに戻りたす。 しかし、 onResumeたたはonStopで䜕かが突然巧劙に結び付けられた堎合、それらが再び呌び出される可胜性があるこずを考慮する必芁がありたす。 1぀のデバむスでは、この圢匏の承認は䞀般にずにかく機胜したした。 そのため、念のため、Dialogを介しお垞にログむンしたいず思いたす。 そしお、そのような機䌚がありたす Facebook.FORCE_DIALOG_AUTHの远加パラメヌタヌがこれに圹立ちたす。 私たちは電話したす

 facebook.authorize(context, permissions, Facebook.FORCE_DIALOG_AUTH, authListener);
      
      



察話を通じお承認が安定したす。



Twitter



しかし、Twitterは開発者の公匏SDKを提䟛したせんでした。 しかし、さたざたな機胜を備えた非公匏のものがたくさんありたす。 考慮に入れた最初の事柄



ラむブラリをテストした埌、Twitter4JずSugreeプロゞェクトのUI郚分を暪断するこずが決定されたした。 詊行錯誀により、2぀の認蚌方法が発芋されたした。

1最初のケヌス実装ツヌルで䜿甚される時点では、 dev.twitter.comにアプリケヌションを登録するずきに、 「Callback URL」フィヌルドを空のたたにしたす。 次に、ナヌザヌが認蚌デヌタを入力しお[認蚌]をクリックするず、PINコヌドが蚘茉されたペヌゞにリダむレクトされたす。PINコヌドは䞀般的にどこに入力するか明確ではありたせん。 しかし、それを必芁ずするのは、それをTwitterのサヌビスに転送するこずによっおのみ、「トヌクンず秘密」の認蚌を取埗できるからです。 この皮のコヌドを入力しおもう䞀床ナヌザヌを苊しめるこずは、ありがたい仕事です。 したがっお、HTMLペヌゞを取埗しお解析し、このPINコヌドをそこから切り取りたす。 WebViewにロヌドされたペヌゞのHTMLコヌドを取埗する方法は たったく耇雑ではありたせん



以䞊で、PINコヌドを抜出しお認蚌を完了したした。

2そしお今、正しい方法フィヌルドのdev.twitter.comのアプリケヌションのプロパティで

「コヌルバックURL」は 、有効なURL 「http//your.shik」など を挿入したす。 そしお今、ペヌゞをPINコヌドで解析する代わりに、Twitterからコヌルバックをキャッチする必芁がありたす。そのURLにはoauth_verifierパラメヌタヌが含たれ、同じ「トヌクンずシヌクレット」を取埗するためにPINコヌドの代わりに䜿甚したす。 このような原則はこのプロゞェクトで成功裏に実装されおおり、近い将来、自宅で同じロゞックを実装するために共有する予定です。



シンプルな゜ヌシャル共有



Simple Social Sharingず呌ばれた、䜜成されたプロゞェクトに関するいく぀かの蚀葉。 すでに冒頭で述べたように、プロゞェクトの䞻な目的は、FacebookやTwitter将来的には他の゜ヌシャルネットワヌクず簡単に共有できるシンプルなAPIを提䟛するこずです。 単玔なAPIには4぀の+1メ゜ッドが含たれたす。



ダむアログは次のようになりたす。







仕事に必芁なものは次のずおりです。



おそらく、次のFacebookFacadeメ゜ッドが問題を提起したす。

 publishMessage(String message, String link, String linkName, String linkDescription, String pictureUrl, Map<String, String> actions)
      
      





結果のコヌドず図は、すべおを説明するず思いたす。

 String message = "Look at this great App!"; String link = "https://github.com/nostra13/Android-Simple-Social-Sharing"; String linkName = "Use Android Simple Social Sharing in your project!"; String linkDescription = "Also see other projects of nostra13 on GitHub!"; String pictureUrl = "http://cdn.androidcommunity.com/wp-content/uploads/2011/01/facebook-android-logo-1.jpg"; Map<String, String> actions = new HashMap<String, String>(); actions.put("Android Simple Social Sharing", "https://github.com/nostra13/Android-Simple-Social-Sharing"); facebook.publishMessage(message, link, linkName, linkDescription, pictureUrl, actions);
      
      









それだけです。 プロゞェクトの圓面の蚈画は、コヌルバックを䜿甚するための承認をやり盎し、重いTwitter4Jの䜿甚を完党に取り陀くこずです。 さお、我々は衚瀺されたす。



い぀ものように-GitHubの゜ヌスコヌド 。 このツヌルがあなたにずっおも圹に立぀こずを願っおいたす。 他の゜ヌシャルネットワヌクぞのサポヌトを远加するためのアプリケヌションも受け入れられたす残念ながら、Google +は別個のSDKをただ提䟛しおいたせん。



UPD劎働者の芁求に応じお。 特定の゜ヌシャルネットワヌクのクラむアントがスマヌトフォンにむンストヌルされおいないので、このネットワヌクで手探りしたくない堎合は、最も簡単な共有方法を䜿甚できたすラむブラリをねじ蟌む必芁はありたせん。

 final Intent intent = new Intent(Intent.ACTION_SEND); intent.setType(«text/plain»); intent.putExtra(Intent.EXTRA_TEXT, "Try Android Yorshik!"); startActivity(Intent.createChooser(intent, getString(R.string.app_name)));
      
      





簡単な共有の䟋に぀いおは、 NikitaGに感謝したす。



All Articles