友盟の社会化コンポーネントを使って、微信と新浪微博に分かち合います

5406 ワード

最近作ったアプリは、機能を共有する必要があるので、友盟の社会化コンポーネントを試してみました.全体的な感じは悪くなく、公式SDKを直接統合するほど簡単ではありませんが、バックグラウンド統計の機能は悪くないので、最後に使いました.公式サイトのドキュメントの説明はすでにとても詳しくて、しかし章節の組織は少し乱れて、本文はまとめます

友盟app keyを取得


まず友盟にapp keyを登録し、SDKをダウンロードします.ここで注意したいのは、SDKはIDFA版と非IDFA版に分かれています.前者はデフォルトの広告ページを設定する必要があります.そうしないと、アップルに棚に上がることを拒否される可能性があります.私は少しリスクがあると思いますので、最後に非IDFAのバージョンを選びました.現在、IDFAはデバイスを識別する唯一の最も正確な手段であるため、このバージョンは新しいユーザーを識別する際にIDFA版ほど正確ではない可能性がありますが、受け入れられると思います.
それから友盟は多くのコンポーネントを提供して、最も基礎的な応用統計のほかに、社会化コンポーネント、プッシュコンポーネントなどがあって、私はその基礎SDKと社会化SDKしか使いませんでした.アプリキーは共通です

統合された微信


微信の友达、友达の輪、コレクションも含まれています
まず、微信オープンプラットフォームにアプリケーションを登録し、app idとapp secretを得る必要があります.私は以前微信の公衆番号の二次開発をしたことがありますが、微信のこの遊び方についてはよく知っています.モバイルアプリケーションに対して、微信オープンプラットフォームは登録、共有、支払いなどのインタフェースを提供しています.私たちは主に共有インタフェースを使用しています.これは最も基礎的なインタフェースです.現在、開発者の身分を認証する必要はありません.プラットフォームに登録するだけでいいです.
app idとapp secretを取得すると、アクセスできます.原生SDKと友盟SDKでは差が少なく、iOSアプリの統合にはURL Typesが欠かせないので、まずURL Typesを設定し、app secretを記入する必要があります
それから友盟が提供したAPIを変えて、微信原生の
#import "UMSocial.h"
#import "UMSocialWechatHandler.h"
[UMSocialData setAppKey:@"   AppKey"];
[UMSocialWechatHandler setWXAppId:@"  app id" appSecret:@"  app secret" url:nil];
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url
{
    return  [UMSocialSnsService handleOpenURL:url];
}

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
    return  [UMSocialSnsService handleOpenURL:url];
}

以上がAppDelegateに書かれているコードですが、唯一注意しなければならないのはsetWXAppId:appSecret:urlという方法でurlはnilを伝えることができます.私たちが後で共有したURLはすべて各ページが特殊なので、ここに記入しません.ここにurlが記入されている場合は、デフォルトのジャンプリンクとして使用されます.
-(void) socialButtonPressed
{
    NSArray *targetSns = @[UMShareToWechatSession, UMShareToWechatTimeline, UMShareToWechatFavorite];
    
    NSString *url = @"http://xxx.com/           url";
    NSString *title = @"   title";
    [UMSocialData defaultData].extConfig.wechatSessionData.url = url;
    [UMSocialData defaultData].extConfig.wechatTimelineData.url = url;
    [UMSocialData defaultData].extConfig.wechatFavoriteData.url = url;
    [UMSocialData defaultData].extConfig.wechatSessionData.title = title;
    [UMSocialData defaultData].extConfig.wechatFavoriteData.title = title;
    
    [UMSocialSnsService presentSnsIconSheetView:self appKey:nil shareText:@"    " shareImage:[UIImage imageNamed:@"    "] shareToSnsNames:targetSns delegate:nil];
}

ここは共有ボタンをクリックしたコードで、targetSnsは共有の目標であり、必要に応じて他のソーシャルプラットフォームを追加することもできます.ここでは微信だけを追加しました.その後、チャット、モーメンツ、コレクションのURLを別々に設定する必要があります.モーメンツはタイトルを設定する必要はありません.モーメンツに共有されたメッセージにはタイトルがありませんから.APIにはありますが、実は無効です
また、ユーザーのデバイスに微信がインストールされていない場合、共有インタフェースにも微信のアイコンは表示されません.そうしないと、アップルはダウンロードを誘導していると考え、棚に上がることを拒否します.

集積新浪微博


集積新浪微博はもっと面倒だと思います.集積微信は基本的にコードを通じて完成したので、新浪微博は3つの場所で配置する必要があります.比較的ばらばらです.私は新浪微博のオリジナルSDKでアクセスしたことがないので、直接友盟のSDKを使うのは把握できないような気がします.
まずもちろん新浪プラットフォームにアプリケーションを登録し、app keyとapp secretを手に入れます.それからURL Typesを配置しますが、ここで使うアプリキーはさっき私たちが新浪に申請したアプリキーではなく、友盟のアプリキーです.
その後、新浪の管理バックグラウンドでOAuthのコールバックアドレスを構成し、友盟のドキュメントに基づいて、セキュリティドメイン名をsnsに構成する必要がある.whalecloud.com,コールバックアドレスはhttp://sns.whalecloud.com/sina2/callbackああ、これも変なところだと思いますが、本来は自分の住所を適用するように配置したほうが合理的だと思います.新浪の文書の中で長い間探して、この住所がどんな論理を実現する必要があることを見ていないで、先に友盟の紹介によって来ましょう
コード:
#import "UMSocial.h"
#import "UMSocialSinaHandler.h"
[UMSocialData setAppKey:@"xxxx"];
[UMSocialSinaHandler openSSOWithRedirectURL:@"http://sns.whalecloud.com/sina2/callback"];
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url
{
    return  [UMSocialSnsService handleOpenURL:url];
}

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
    return  [UMSocialSnsService handleOpenURL:url];
}

モードは前のアクセス微信とかなり似ており、サードパーティコンポーネントを使用するメリットも見られます.少なくともhandleOpenURLとopenURLは2回書く必要はありません.
次に、共有コード:
NSArray *targetSns = @[UMShareToSina];
    
[UMSocialSnsService presentSnsIconSheetView:self appKey:nil shareText:@"    
http://www.baidu.com" shareImage:[UIImage imageNamed:@"image_placeholder"] shareToSnsNames:targetSns delegate:nil];

ここでの違いはurlとtitleを設定する必要はありません.微博を共有するモードは微信とは異なり、titleとurlを表示していないところです.これはプラットフォームの違いで、友盟を使う理由ではありません.つまり、新浪原生のSDKを使うこともできません.だから共有した内容にリンクを追加したいのですが、shareTextに直接書く必要があります.
上の配置を経て、内容を新浪微博に共有することができます.ここでは、ユーザー機器に微博があれば、SSOを使って直接共有します.インストールされていない場合は、OAuthライセンスを使用してWebページにジャンプします.これは主に新浪微博が第三者アプリケーションにOAuth権限を提供したためで、微信は現在、公衆番号にOAuthアクセスしか提供していないようだが、モバイルアプリケーションはアプリケーションを通じてジャンプするしかない.
しかし、今問題があります.私は前に新浪で申請したapp keyとapp secretが最初から最後まで使ったことがないことに気づきました.これは明らかに合理的ではありません.やはり分かち合う微博、出所はすべて“友盟の社会化のコンポーネント”で、それから1周探して、また友盟のバックグラウンドで自分のapp keyとapp secretを配置する必要があることを発見して、それからOKしました

高度な機能


前述の最も基本的な共有に加えて、共有ページのスタイルをカスタマイズすることもできます(基本的な方法は、友盟がXIBとポップアップ方式を提供していることです)、より下位の直接共有インタフェース(ページなし)を呼び出すこともできます.また、delegateメソッドもあります.必要に応じて自分で実現することができます.