Twitter登录和分享
来源:互联网 发布:淘宝 市场份额 编辑:程序博客网 时间:2024/09/21 09:03
最近正在熟悉公司的项目,因为是国际项目,所以用到了google,facebook,Twitter等登录和分享。这里,写几个博客,总结一下,和记录一下。内容的来源,主要还是来自官网,然后我翻译过来的。
因为是国际项目,所有官网的内容,都需要翻墙,才能看到。
推特开发者:
https://dev.twitter.com/products
推特的开发者服务,包含四大类:
1,发布平台Publisher platform.
1,推特一键分享Twitter buttons
2,推特卡片Twitter Cards --- 用来展示信息,图片,应用链接,内联视频。
3,Twitter Kit 用来在自己的应用中在线聊天,实际的功能比较多。
TwitterKit是ios和android客户端使用推特,进行推特授权(三方登录)和推特API的工具箱。
功能列表:
方便使用,在应用里打开具有交互的推特和时间线。
在原生views打开原生的推特,获取数据集合,配置信息和动态的搜索信息。
特推的暴露工具,授权用户进行推特的分享。
自动处理推特API访问。
用户授权组件,方便的推特账户日志,请求邮件地址进行用户注册流量计算。
全功能的RESTFULL API访问。
4,Embedded Tweets 在自己的网站中添加有交互的Tweets.
5,Embedded timelines 一次通过过个Tweets来叙述你的故事
6,TweetDeck 创建发现和辅助最好的推文。
7,Twitter analytics 推文统计,检测你的内容在推特上的到达和点击
2,实时Data
1,PowerTrack 实时过滤和完善平衡你需要的数据
2,Decahose 10%的例子文章,帮助你展示个人业务的趋势
3,HistoricalPowerTrack
4,30-day Search
5,Full Archive Search全量的推文搜索服务。
6,Audience API
7,Engagement API
3,APIs用来访问和发布推特数据
1,REST API (这里,简单用这个类别)
推特受用APIs来阅读和发送推特数据,使用推特的三方应用和用户使用 OAuth 进行认证。接口通过 json 数据结构进行响应。
如果你的注意点实时地吉安特和处理推特数据,可以考虑使用 Streaming API.
*使用 OAoth 1.0a进行用户权限认证。
api调用用限制:
每个时间窗口的截点划分为15分钟的时间块。可以更多独立的调用在每个时间窗口。每个应用,有明确的限制,同时只能有10w个用户token。对别的应用不提供更大量的生态系统支持。
api调用次数限制:
每个用户token,允许在同一个时间窗口,进行15个网络请求。通过认证的用户在整个应用的的方法请求中,都包含在这15个当中。但使用应用认知的时候,请求频率限制在整个应用,当使用用户认证的时候,其你去的频率则对于用户而言。
响应429,Too Many Requests.
响应88,Rate limit exceeded.
和时间线交互:
使用API搜索:
接口列表和访问限制:https://dev.twitter.com/rest/public/rate-limits
搜索本身是API提供接口能力的一个,因为有一些更多的内容,这里单独拿出来讲。
在使用搜索接口的使用,有一些特定的搜索字符规范,用来描述不同的搜索逻辑。https://dev.twitter.com/rest/public/search
搜索关于位置:
上传媒体文件:
文档引用:
2,Streaming API
3,Media API
4,Collections API
5,TON API
4,广告业务
1,MoPub
2,Ads API
RestFull接口列表:
- GET account/settings
- GET account/verify_credentials
- GET application/rate_limit_status
- GET blocks/ids
- GET blocks/list
- GET collections/entries
- GET collections/list
- GET collections/show
- GET direct_messages
- GET direct_messages/events/list
- GET direct_messages/events/show
- GET direct_messages/sent
- GET direct_messages/show
- GET direct_messages/welcome_messages/list
- GET direct_messages/welcome_messages/rules/list
- GET direct_messages/welcome_messages/rules/show
- GET direct_messages/welcome_messages/show
- GET favorites/list
- GET followers/ids
- GET followers/list
- GET friends/ids
- GET friends/list
- GET friendships/incoming
- GET friendships/lookup
- GET friendships/no_retweets/ids
- GET friendships/outgoing
- GET friendships/show
- GET geo/id/:place_id
- GET geo/reverse_geocode
- GET geo/search
- GET help/configuration
- GET help/languages
- GET help/privacy
- GET help/tos
- GET lists/list
- GET lists/members
- GET lists/members/show
- GET lists/memberships
- GET lists/ownerships
- GET lists/show
- GET lists/statuses
- GET lists/subscribers
- GET lists/subscribers/show
- GET lists/subscriptions
- GET media/upload (STATUS)
- GET mutes/users/ids
- GET mutes/users/list
- GET saved_searches/list
- GET saved_searches/show/:id
- GET search/tweets
- GET statuses/home_timeline
- GET statuses/lookup
- GET statuses/mentions_timeline
- GET statuses/oembed
- GET statuses/retweeters/ids
- GET statuses/retweets/:id
- GET statuses/retweets_of_me
- GET statuses/show/:id
- GET statuses/user_timeline
- GET trends/available
- GET trends/closest
- GET trends/place
- GET users/lookup
- GET users/profile_banner
- GET users/search
- GET users/show
- GET users/suggestions
- GET users/suggestions/:slug
- GET users/suggestions/:slug/members
- POST account/remove_profile_banner
- POST account/settings
- POST account/update_profile
- POST account/update_profile_background_image
- POST account/update_profile_banner
- POST account/update_profile_image
- POST blocks/create
- POST blocks/destroy
- POST collections/create
- POST collections/destroy
- POST collections/entries/add
- POST collections/entries/curate
- POST collections/entries/move
- POST collections/entries/remove
- POST collections/update
- POST direct_messages/destroy
- POST direct_messages/events/new (message_create)
- POST direct_messages/new
- POST direct_messages/welcome_messages/new
- POST direct_messages/welcome_messages/rules/new
- POST favorites/create
- POST favorites/destroy
- POST friendships/create
- POST friendships/destroy
- POST friendships/update
- POST geo/place
- POST lists/create
- POST lists/destroy
- POST lists/members/create
- POST lists/members/create_all
- POST lists/members/destroy
- POST lists/members/destroy_all
- POST lists/subscribers/create
- POST lists/subscribers/destroy
- POST lists/update
- POST media/metadata/create
- POST media/upload
- POST media/upload (APPEND)
- POST media/upload (FINALIZE)
- POST media/upload (INIT)
- POST mutes/users/create
- POST mutes/users/destroy
- POST saved_searches/create
- POST saved_searches/destroy/:id
- POST statuses/destroy/:id
- POST statuses/retweet/:id
- POST statuses/unretweet/:id
- POST statuses/update
- POST statuses/update_with_media (deprecated)
- POST users/report_spam
- DELETE direct_messages/welcome_messages/destroy
- DELETE direct_messages/welcome_messages/rules/destroy
上面对官网的内容,基本整理完了。
现在,笔锋一转:我们在开发中怎么做呢:
如果没有什么特殊情况,Twitter Kit 就能够满足所有的开发需要了。android , ios ,unity等都有。
由于本人是干Android的,所以,这里自私一下,只说一下android的使用。
Android:
dependencies { // Include all the Twitter APIs compile 'com.twitter.sdk.android:twitter:3.0.0' // (Optional) Monetize using mopub compile 'com.twitter.sdk.android:twitter-mopub:3.0.0'}
由于推特的工具箱,是分功能提供的,所以,可以分功能进行集成。
dependencies { compile 'com.twitter.sdk.android:twitter-core:3.0.0' compile 'com.twitter.sdk.android:tweet-ui:3.0.0' compile 'com.twitter.sdk.android:tweet-composer:3.0.0' compile 'com.twitter.sdk.android:twitter-mopub:3.0.0'}官网建议的使用 jcenter 进行代码库下载,弟兄们都懂,慢的跟狗屎一样,所以 自己找个快的,自己爽就行。
1,Application 初始化:
public class CustomApplication { public void onCreate() { Twitter.initialize(this); }}
2,资源文件(这个再Twitter的应用管理里有)
<resources> <string android:name="com.twitter.sdk.android.CONSUMER_KEY">y5nrFawhcvC98z0VoYANnoETP</string> <string android:name="com.twitter.sdk.android.CONSUMER_SECRET">DjPcnWZeKbI7xsb8gpyYsXxTrx5guTvAGui6C0FjBZ79rVaN6j</string></resources>3,自定义,修改默认的用户配置
public void onCreate() { TwitterConfig config = new TwitterConfig.Builder(this) .logger(new DefaultLogger(Log.DEBUG)) .twitterAuthConfig(new TwitterAuthConfig("CONSUMER_KEY", "CONSUMER_SECRET"))//手动使用代码添加key,secret. .debug(true)//打开或者关闭debug模式 .build(); Twitter.initialize(config);}4,所有的初始化操作完成之后,就可以使用Kit提供的单例化工具。
TwitterCore.getInstance();
TwitterUi.getInstance();
TwitterComposer.getInstance();
4-1,使用Twitter 登录。
最简单的方式:
<com.twitter.sdk.android.core.identity.TwitterLoginButton android:id="@+id/login_button" android:layout_width="wrap_content" android:layout_height="wrap_content" />
loginButton = (TwitterLoginButton) findViewById(R.id.login_button);loginButton.setCallback(new Callback<TwitterSession>() { @Override public void success(Result<TwitterSession> result) { // Do something with result, which provides a TwitterSession for making API calls } @Override public void failure(TwitterException exception) { // Do something on failure }});
@Override //Activity中protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); // Pass the activity result to the login button. loginButton.onActivityResult(requestCode, resultCode, data);}
@Override //Fragment中protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); // Pass the activity result to the fragment, which will then pass the result to the login // button. Fragment fragment = getFragmentManager().findFragmentById(R.id.your_fragment_id); if (fragment != null) { fragment.onActivityResult(requestCode, resultCode, data); }}登录成功后, TwitterSession 被用来提供成功的结果。
TwitterSession session = TwitterCore.getInstance().getSessionManager().getActiveSession();TwitterAuthToken authToken = session.getAuthToken();String token = authToken.token;String secret = authToken.secret;
一个接口的实例:
官方提供自定义的Retrofit Service。
更多接口的请求事例:https://dev.twitter.com/twitterkit/android/access-rest-api
TwitterAuthClient authClient = new TwitterAuthClient();authClient.requestEmail(session, new Callback<String>() { @Override public void success(Result<String> result) { // Do something with the result, which provides the email address } @Override public void failure(TwitterException exception) { // Do something on failure }});
4-2:推特发布
提供两种方式:
1,启动原生端推特发布器,功能丰富。
2,启动Kit内部的原生发布器,一个轻量级的应用内置发布。
1,启动推特原生发布器:
TweetComposer.Builder builder = new TweetComposer.Builder(this) .text("just setting up my Twitter Kit.") .image(imageUri);//using content://....FileProvider.getUriForFile(this,APPID.file_provider,new File("/path/to/image"));builder.show();如果没有安装推特app,则会再浏览器中启动推特。但是图片等会被忽略。
2,Kit发布器
final TwitterSession session = TwitterCore.getInstance().getSessionManager() .getActiveSession();final Intent intent = new ComposerActivity.Builder(YourActivity.this) .session(session) .image(uri) .text("Love where you work") .hashtags("#twitter") .createIntent();startActivity(intent);
发布成功后,推特上传服务,会发送成功或者失败的广播,开发者可以自定义接收处理:
public class MyResultReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { if (TweetUploadService.UPLOAD_SUCCESS.equals(intent.getAction())) { // success final Long tweetId = intentExtras.getLong(TweetUploadService.EXTRA_TWEET_ID); } else { // failure final Intent retryIntent = intentExtras.getParcelable(TweetUploadService.EXTRA_RETRY_INTENT); } }}
<receiver android:name=".MyResultReceiver" android:exported="false"> <intent-filter> <action android:name="com.twitter.sdk.android.tweetcomposer.UPLOAD_SUCCESS"/> <action android:name="com.twitter.sdk.android.tweetcomposer.UPLOAD_FAILURE"/> </intent-filter></receiver>
Twitter 自己的 library twitter_kit:
android:
https://dev.twitter.com/twitterkit/android
ios:
https://dev.twitter.com/twitterkit/ios
为Twitter 平台开发的Libraries:
各种语言都有支持。
Temboo跨平台支持:https://temboo.com/library/Library/Twitter/。。。各种语言,各种平台。
Java:
http://twitter4j.org/en/index.html
✔ 100% Pure Java - works on any Java Platform version 5 or later
✔ Android platform and Google App Engine ready
✔ Zero dependency : No additional jars required
✔ Built-in OAuth support
✔ Out-of-the-box gzip support
✔ 100% Twitter API 1.1 compatible
一个例子:
https://github.com/twitterdev/android-samples
使用Fabric的例子:
https://github.com/twitterdev/FabricWithTwitter/tree/master/Android
- Twitter登录和分享
- Android集成Twitter和facebook登录分享
- Twitter 登录分享
- Android Facebook和Twitter登录和分享完整版
- facebook和twitter三方登录分享的实现
- [置顶] Android Facebook和Twitter登录和分享完整版 标签: facebooktwitter 2016-09-07 18:40
- Android Facebook和Twitter分享
- 分享链接内容到Facebook和twitter
- Twitter 登录
- 修改host登录GOOGLE PLUS 和 Twitter
- Facebook 登录和分享
- facebook登录和分享
- QQ登录和分享
- 使用SLComposeViewController 分享图片和文字到FaceBook与Twitter
- js分享到facebook,twitter,linkedin和google
- 为什么pinterest必须用twitter和facebook帐号登录?
- iphone 分享到twitter
- facebook|Twitter|linkedin分享
- spring 定时任务配置
- There is no Action mapped for namespace [/] and action name [] associated
- 高斯拉普拉斯算子的卷积模板
- fgetc和getc的区别 The function getchar is defined to be equivalent to getc(stdin). The difference betwee
- hadoop在企业中的应用架构
- Twitter登录和分享
- 欢迎使用CSDN-markdown编辑器
- PAT A+B和C
- Spring4 IOC 注解学习笔记
- 解密:Linux与Android的关系
- oracle监听程序当前无法识别
- 信号上篇
- 从AILD与bindService谈Binder进程间通信原理(上)
- input限制3位小数输入